实在是对 sql/spark 不熟,不知道有没有朋友能指点一下?
比如,数据如下
customer = spark.createDataFrame([
(0, "Bill Chambers"),
(1, "Matei Zaharia"),
(2, "Michael Armbrust")])\
.toDF("customerid", "name")
order = spark.createDataFrame([
(0, 0, "Product 0"),
(1, 1, "Product 1"),
(2, 1, "Product 2"),
(3, 3, "Product 3"),
(4, 1, "Product 4")])\
.toDF("orderid", "customerid", "product_name")
我要拿到有 order 的 customer, 可以用 left semi
来做
customer.join(order, ['customerid'], "left_semi").show()
返回结果如图
现在,我想直接加上一列has_order
作为标记,而不是直接把没有的行去掉(这样方便对比分析、作图)。就是想得到这样的结果:
+----------+----------------+---------+
|customerid| name|has_order|
+----------+----------------+---------+
| 0| Bill Chambers | true|
| 1| Matei Zaharia | true|
| 2|Michael Armbrust| false|
+----------+----------------+---------+
想问下可以怎么做?
这个也在 stackoverflow 上问了一下,不知道这里有没有朋友可以指点一下,谢谢!