首页 > 解决方案 > 数据框加入pyspark抛出语法错误

问题描述

在 Pyspark 中,我试图加入 2 个数据框来调用这两个数据框中的所有列。

DataFrame1 中的 Key 列 = NUM​​BER,DataFrame2 中的 KeyColumn = POSNUM(两个数据框中的不同列名。)

Dataframe1:

NUMBER|NAME
++++++++++++++++++
23000|Fairchild                
23001|Philips                 
23002|Sony     
23003|Video                         
23004|Audio           
23005|Mobile 
+++++++++++++++++++

+++++++++++++++++++                   
NM|POSNUM
+++++++++++
PH|23000
RS|380094
QT|23002
AO|379962
DS|23004
TX|379964
NS|379965
+++++++++++++++++++


Output
+++++++++++++++++++++++++++++++++++++++
23000|Fairchild|PH|23000
23002|Sony|QT|23002 
23004|Audio|DS|23004
++++++++++++++++++++++++++++++++++++++

代码:

df1.join(df2, df1.NUMBER == df2.POSNUM).show()

错误:

    raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u'Unsupported class file major version 55'

如果我缺少任何东西,请帮助我。

标签: apache-sparkjoinpyspark

解决方案


这里的错误是您的 join 语法不正确。

df1.join(df2, df1.NUMBER == df2.POSNUM).show()

或者您可以使用:

df1.join(df2, df1['NUMBER'] == df2['POSNUM']).show()

推荐阅读