这是我的数据框
console.log
我想对其进行转换,使其看起来像这样:
df = spark.createDataFrame([("A", "2018-01-05"), ("A", "2018-02-10"), ("B", "2018-08-11"), ("B", "2018-09-11")], ("ID", "date"))
因此,基本上,我需要执行crossJoin,但仅适用于与特定ID关联的值。这可能吗?有任何想法吗?也许通过窗口功能?
答案 0 :(得分:1)
解决方案是
df.join(df, ["ID"]).toDF("id", "date1", "date2").show()
结果是
+---+----------+----------+
| id| date1| date2|
+---+----------+----------+
| B|2018-08-11|2018-08-11|
| B|2018-08-11|2018-09-11|
| B|2018-09-11|2018-08-11|
| B|2018-09-11|2018-09-11|
| A|2018-01-05|2018-01-05|
| A|2018-01-05|2018-02-10|
| A|2018-02-10|2018-01-05|
| A|2018-02-10|2018-02-10|
+---+----------+----------+