前提・実現したいこと
pysparkのdataframeでjoinした結果をshowメソッド実行して結果をみる。
発生している問題・エラーメッセージ
joinしたのちshowメソッドを実行したら下記エラーメッセージが出る。
Traceback (most recent call last): File "test.py", line 17, in <module> cdf.show() File "/Users/xxxx/Library/Python/3.7/lib/python/site-packages/pyspark/sql/dataframe.py", line 380, in show print(self._jdf.showString(n, 20, vertical)) File "/Users/xxxx/Library/Python/3.7/lib/python/site-packages/py4j/java_gateway.py", line 1257, in __call__ answer, self.gateway_client, self.target_id, self.name) File "/Users/xxxx/Library/Python/3.7/lib/python/site-packages/pyspark/sql/utils.py", line 63, in deco return f(*a, **kw) File "/Users/xxxx/Library/Python/3.7/lib/python/site-packages/py4j/protocol.py", line 328, in get_return_value format(target_id, ".", name), value) py4j.protocol.Py4JJavaError: An error occurred while calling o48.showString. : org.apache.spark.SparkException: Exception thrown in awaitResult: (中略) Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 57 (略)
該当のソースコード
python
1from pyspark.sql import SparkSession 2 3spark = SparkSession \ 4 .builder \ 5 .appName("Python Spark SQL basic example") \ 6 .config("spark.some.config.option", "some-value") \ 7 .getOrCreate() 8 9adf = spark.read.option('header','true').option('inferSchema', 'true').load('./a.csv',format='csv') 10bdf = spark.read.option('header','true').option('inferSchema', 'true').load('./b.csv',format='csv') 11 12adf.show() 13bdf.show() 14 15cdf = adf.join(bdf, adf.id == bdf.id, 'inner') 16cdf.show()
csv
1id,name 21,apple 32,banana 43,cherry 54,drian
csv
1id,price 21,270 32,210 43,250 54,220
a.showの結果
+---+------+ | id| name| +---+------+ | 1| apple| | 2|banana| | 3|cherry| | 4| drian| +---+------+
b.showの結果
+---+-----+ | id|price| +---+-----+ | 1| 270| | 2| 210| | 3| 250| | 4| 220| +---+-----+
試したこと
joinについて
cdf = adf.join(bdf, ['id'], 'inner')
補足情報(FW/ツールのバージョンなど)
mac
python 3.7.3
pyspark 2.4.5
java openjdk13
他のselect,fileter,groupbyなどは上手くいきます。
showの部分をコメントアウトするとエラーは出ないです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。