首页 文章

将StringType转换为ArrayType

提问于
浏览
1

是否可以将StringType列强制转换为spark数据帧中的ArrayType列?

df.printSchema() 给出了这一点

Schema - > a:string(nullable = true)

现在我想将其转换为

a:array(nullable = true)

1 回答

  • 3

    正如elisiah评论的那样,你必须拆分你的字符串 . 您可以使用UDF:

    df.printSchema
    
        import org.apache.spark.sql.functions._
    
        val toArray = udf[Array[String], String]( _.split(" "))
        val featureDf = df
          .withColumn("a", toArray(df("a")))  
    
        featureDF.printSchema
    

    给出输出:

    root  
     |-- a: string (nullable = true)
    
    root
     |-- a: array (nullable = true)
     |    |-- element: string (containsNull = true)
    

相关问题