我需要展平数据框,以便将其与Spark(Scala)中的另一个数据框连接起来。
基本上我的2个数据帧有以下模式:
DF1
root
|-- field1: string (nullable = true)
|-- field2: long (nullable = true)
|-- field3: long (nullable = true)
|-- field4: long (nullable = true)
|-- field5: integer (nullable = true)
|-- field6: timestamp (nullable = true)
|-- field7: long (nullable = true)
|-- field8: long (nullable = true)
|-- field9: long (nullable = true)
|-- field10: integer (nullable = true)
DF2
root
|-- field1: long (nullable = true)
|-- field2: long (nullable = true)
|-- field3: string (nullable = true)
|-- field4: integer (nullable = true)
|-- field5: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- field6: long (nullable = true)
| | |-- field7: integer (nullable = true)
| | |-- field8: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- field9: string (nullable = true)
| | | | |-- field10: integer (nullable = true)
|-- field11: timestamp (nullable = true)
老实说,我不知道如何压扁DF2。最后,我需要在DF.field4 = DF2.field9
上加入2个数据帧我使用的是2.1.0
我的第一个想法是使用爆炸但在Spark 2.1.0中已经弃用了吗?有没有人对我有任何线索?
答案 0 :(得分:1)
我的错误爆炸功能仍然可以在org.apache.spark.sql包中的functions.explode下的Spark 2.1.0中找到
由于
您可以在下面找到以下代码:
c