【发布时间】:2021-04-08 20:25:17
【问题描述】:
我对 scala 很陌生,我有以下问题。
我有一个具有以下架构的 spark 数据框:
df.printSchema()
root
|-- word: string (nullable = true)
|-- vector: array (nullable = true)
| |-- element: string (containsNull = true)
我需要将其转换为以下架构:
root
|-- word: string (nullable = true)
|-- vector: array (nullable = true)
| |-- element: double (containsNull = true)
我不想事先指定架构,而是更改现有架构。
我已经尝试了以下
df.withColumn("vector", col("vector").cast("array<element: double>"))
我也尝试将其转换为 RDD 以使用 map 更改元素然后将其转换回数据框,但我得到以下数据类型 Array[WrappedArray] 并且我不知道如何处理它。
使用 pyspark 和 numpy,我可以通过 df.select("vector").rdd.map(lambda x: numpy.asarray(x)) 做到这一点。
任何帮助将不胜感激。
【问题讨论】:
标签: scala apache-spark apache-spark-sql