Apache spark 将某些配置单元列展开(转换)为行(记录)

Apache spark 将某些配置单元列展开(转换)为行(记录),apache-spark,dataframe,hive,apache-spark-sql,transpose,Apache Spark,Dataframe,Hive,Apache Spark Sql,Transpose,是否有一种有效的方法可以通过显示的目标转换来转换下面的配置单元表。源表中的列计数约为1500。 使用spark 2.0,源和目标作为数据帧 (id, dt , source1_ColA, source1_ColB, source2_ColA, source2_ColB) ------------------------------------------------------------ (10,"2018-06-01", 10, 9,

是否有一种有效的方法可以通过显示的目标转换来转换下面的配置单元表。源表中的列计数约为1500。 使用spark 2.0,源和目标作为数据帧

(id,   dt ,       source1_ColA, source1_ColB, source2_ColA, source2_ColB)
------------------------------------------------------------

(10,"2018-06-01",   10,             9,          5,          8       )

(20,"2018-06-01",   20,             12,         16,         11      )
列A、B的变换如下所示 目标表

(id, dt ,   element_name,  source1,  source2 )
---------------------------------------

(10,"2018-06-01",   ColA    ,     10    ,   5       )

(10,"2018-06-01",   ColB    ,      9    ,   8       )

(20,"2018-06-01",   ColA    ,     20    ,   16      )

(20,"2018-06-01",   ColB    ,     12    ,   11      )

请显示您已经尝试过的内容。@LazerBass-对于每个列(ColA,ColB,…)->(1)ColA-选择[id,dt,src1_-ColA,src2_-ColA,…]-转换为数据帧->[id,dt,data_-elmnt='ColA',src1,src2][id,dt data\u-elmnt='ColB',src1,src2]