我想问一下,当我使用.join()时你是否知道如何在pyspark中指定很多条件
示例:with hive:
query= "select a.NUMCNT,b.NUMCNT as RNUMCNT ,a.POLE,b.POLE as RPOLE,a.ACTIVITE,b.ACTIVITE as RACTIVITE FROM rapexp201412 b \
join rapexp201412 a where (a.NUMCNT=b.NUMCNT and a.ACTIVITE = b.ACTIVITE and a.POLE =b.POLE )\
但是在pyspark我不知道怎么做,因为以下内容:
df_rapexp201412.join(df_aeveh,df_rapexp2014.ACTIVITE==df_rapexp2014.ACTIVITE and df_rapexp2014.POLE==df_aeveh.POLE,'inner')
不起作用!!
2 回答
引用spark文档:
(https://spark.apache.org/docs/1.5.2/api/python/pyspark.sql.html?highlight=dataframe%20join#pyspark.sql.DataFrame.join)
因此,您需要像上一个示例中那样使用“条件作为列表”选项 .
这不适用于pyspark 1.3.1 . 我得到“AssertionError:joinExprs应该是列”
相反,我使用原始sql加入数据帧,如下所示