0
我有类似这样的输入。Spark/Scala:结构类型为Spark的DataFrame列
输入:
|customerId|Header |Line |
|1001 |1001aa |1001aa1 |
|1001 |1001aa |1001aa2 |
|1001 |1001aa |1001aa3 |
|1001 |1001aa |1001aa4 |
|1002 |1002bb |1002bb1 |
|1002 |1002bb |1002bb2 |
|1002 |1002bb |1002bb3 |
|1002 |1002bb |1002bb4 |
|1003 |1003cc |1003cc1 |
|1003 |1003cc |1003cc2 |
|1003 |1003cc |1003cc3 |
+----------+-----------+---------+
使用数据帧和UDF我能够做到这一点 但我想有这些列名的以及结构数据类型。任何帮助表示赞赏。
val udfHeaderLineList1 = udf((header:String,line:Seq[String])=>{
line.map(records=>List(header,records)).toList
})
val eventingDFtable = my_dataframe_data_Table.
groupBy(col("customerId"), col("header")).
agg(collect_list(col("Line")).alias("Line")).
withColumn("TransHeaderStruct",udfHeaderLineList1(col("header"),col("Line"))).printSchema
该解决方案您可以检查您的这个解决方案与您的问题所需要的模式相匹配?我怀疑 –
是的。它确实匹配。 :) –
确实如此。 ;) 谢谢 。我想你一定得到了你的解决方案。为您的解决方案upvote –