输入
+--------------+-----------+
| country name|country code
+--------------+-----------+
| USA| 400001|
| USA| 400001|
| USA| 400001|
| USA| 400002|
| USA| 400002|
|
| Russia| 100001|
| Russia| 100001|
| Russia| 100002|
| Russia| 100002|
| Russia| 100002|
|
| China| 600000|
| China| 600001|
| China| 600001|
| China| 600001|
|
| India| 700001|
| India| 700001|
| India| 700001|
| India| 700001|
| India| 700001|
|
| Australia| 800004|
| Australia| 800004|
| Australia| 800004|
| Australia| 800004|
+--------------+---------
输出
output
USA | Russia| China|India | Australia|
+------+------+------+------+------------+---
|400001|100001|600000| 700006| 80001|
|400001|100001|600000| 700006| 80001|
|400001|100001|600000| 700006| 80001|
|400002|100002|600001| 700004| 80004|
|400002|100002|600000| 700006| 80001|
+------+------+------+------+------------+---
需要将所有字段/列合并为一个字段/列吗?如果字段为空,我们甚至可以添加na或null
从制作动态列开始
val columns=ds1.groupBy("country name").pivot("country name").count().drop("country name").columns
所以我收到了现在在他们身上循环的专栏
val b =columns.map(c=>ds1.filter(ds1("country name") === c).withColumn(c,lit(ds1("country code"))).drop("country code").drop("country name")).reduce(_ unionAll _)
最初试着一组一组地做
ds1.filter(ds1("country name") === c).withColumn(c,lit(ds1("country code"))).drop("country code").drop("country name") ```
这样每个组只登陆一列,通过修改来处理动态列,如何连接所有列以接收about输出?将上面的Dataframe/数据集转换为下面的输出?我曾经尝试过map和reduce,但由于它给出了其中一个列标题中的所有列,所以不知怎的卡住了
暂无答案!
目前还没有任何答案,快来回答吧!