【发布时间】:2020-10-05 09:43:31
【问题描述】:
当我将数组传递给函数时,Spark 2 会自动将 scala 数组转换为 WrappedArray。但是,在 Spark 1.6 中,数组被转换为类似 '[a,b,c]' 的字符串。这是我的代码
val df_date_agg = df
.groupBy($"a",$"b",$"c")
.agg(sum($"d").alias("data1"),sum($"e").alias("data2"))
.groupBy($"a")
.agg(collect_list(array($"b",$"c",$"data1")).alias("final_data1"),
collect_list(array($"b",$"c",$"data2")).alias("final_data2"))
当我在上面运行代码以触发 1.6 时。我正在低于架构
|-- final_data1: array (nullable = true)
| |-- element: string (containsNull = true)
|-- final_data2: array (nullable = true)
| |-- element: string (containsNull = true)
但在火花 2 中
|-- final_data1: array (nullable = true)
| |-- element: array (containsNull = true)
| | |-- element: string (containsNull = true)
|-- final_data1: array (nullable = true)
| |-- element: array (containsNull = true)
| | |-- element: string (containsNull = true)
如何根据 spark 1 更改 spark 2 的数据类型?
【问题讨论】:
-
我相信你已经发布了两次相同的问题stackoverflow.com/questions/64204751/…
标签: scala apache-spark