Scala 将Stringtype转换为ArrayType
是否可以将StringType列强制转换为spark数据帧中的ArrayType列Scala 将Stringtype转换为ArrayType,scala,apache-spark,Scala,Apache Spark,是否可以将StringType列强制转换为spark数据帧中的ArrayType列 df.printSchema() 模式-> a:string(nullable=true) 现在我想把它转换成 a:数组(nullable=true) 如前所述,您必须拆分字符串。您可以使用自定义项: df.printSchema import org.apache.spark.sql.functions._ val toArray = udf[Array[String], Strin
df.printSchema()
模式->
a:string(nullable=true)
现在我想把它转换成
a:数组(nullable=true)
如前所述,您必须拆分字符串。您可以使用自定义项:
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)
如前所述,您必须拆分字符串。您可以使用自定义项:
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)
另一个选项是在functions.array
中简单地包装任何列
df.withColumn("a", functions.array(col("a")))
另一个选项是在functions.array
中简单地包装任何列
df.withColumn("a", functions.array(col("a")))
你不能施展你必须分开我怎么才能分开它。你能用一个例子来解释吗?你愿意至少给出一个数据样本吗?a=[{val1:“somevalue_x”,val2:“somevalue_y”},{val1:“somevalue_z”,val2:“somevalue_v”}],目前a是一个字符串,我想要它作为一个数组。你不能强制转换,你必须拆分它。我如何拆分它。你能用一个例子来解释它吗?你愿意至少给出一个数据样本吗?a=[{val1:“somevalue_x”,val2:“somevalue_y”},{val1:“somevalue_z”,val2:“somevalue_v”}],目前a是一个字符串,我希望它是一个数组