Scala Spark:如何为一个flattable创建新列,其名称超出列1和列2的值,列3的值作为内容
如何使用以下方法转换数据帧 原件:Scala Spark:如何为一个flattable创建新列,其名称超出列1和列2的值,列3的值作为内容,scala,apache-spark,dataframe,pivot,flatten,Scala,Apache Spark,Dataframe,Pivot,Flatten,如何使用以下方法转换数据帧 原件: +----+----+----+----+----+ |col0|col1|col2|col3|col4| +----+----+----+----+----+ | #1| A| 1| C3| I4| | #1| A| 2| D3| J4| | #1| A| 3| E3| K4| | #1| B| 1| F3| L4| | #1| B| 2| G3| M4| | #1| B| 3|
+----+----+----+----+----+
|col0|col1|col2|col3|col4|
+----+----+----+----+----+
| #1| A| 1| C3| I4|
| #1| A| 2| D3| J4|
| #1| A| 3| E3| K4|
| #1| B| 1| F3| L4|
| #1| B| 2| G3| M4|
| #1| B| 3| H3| N4|
| #2| A| 1| O3| U4|
| #2| A| 2| P3| V4|
| #2| A| 3| Q3| W4|
| #2| B| 1| R3| X4|
| #2| B| 2| S3| Y4|
| #2| B| 3| T3| Z4|
+----+----+----+----+----+
到下面的所需表格:
+----+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
|col0|col1_A_col2_1_col3|col1_A_col2_2_col3|col1_A_col2_3_col3|col1_B_col2_1_col3|col1_B_col2_2_col3|col1_B_col2_3_col3|col1_A_col2_1_col4|col1_A_col2_2_col4|col1_A_col2_3_col4|col1_B_col2_1_col4|col1_B_col2_2_col4|col1_B_col2_3_col4|
+----+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
| #1| C3 | D3 | E3 | F3 | G3 | H3 | I3 | J4 | K4 | L4 | M4 | N4 |
| #2| O3 | P3 | Q3 | R3 | S3 | T3 | U3 | V4 | W4 | X4 | Y4 | Z4 |
+----+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
为了创建一个平板。看起来像一个轴,但不是经典意义上的轴。有没有可能是1。。4以及1..3?如果col1中的值C意味着我们也会得到一个新的列,我想呢?需要沿着这些线进行协组或其他事情,得到K,V。不确定新的列是否会导致新的列名称,似乎会得到非常广泛的RDD和稀疏的尝试生成功能名称?需要更好的解释吗