0
私はpysparkに取り組んでいます。これはubuntuマシンにインストールされています16.04、結果はかなり長いコードです。私はcsvファイルとして保存したいデータフレーム、と私は次のエラーを取得するたびに、すべてが正常に動作しますが、コードのこの最後の行:Pyspark Dataframeを保存しようとしましたが、Py4JNetworkError-UBUNTUを取得しようとしました
final_df.write.format('txt').save('final_test1')
はあなたがアドバイスをしてもらえ、私は何ができるのでしょうか?
ERROR:root:Exception while sending command.
Traceback (most recent call last):
File "/home/ubuntu/spark-2.1.1-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1035, in send_command
raise Py4JNetworkError("Answer from Java side is empty")
py4j.protocol.Py4JNetworkError: Answer from Java side is empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/spark-2.1.1-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 883, in send_command
response = connection.send_command(command)
File "/home/ubuntu/spark-2.1.1-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1040, in send_command
"Error while receiving", e, proto.ERROR_ON_RECEIVE)
py4j.protocol.Py4JNetworkError: Error while receiving
Traceback (most recent call last):
File "/usr/lib/python3.5/socketserver.py", line 313, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python3.5/socketserver.py", line 341, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python3.5/socketserver.py", line 354, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.5/socketserver.py", line 681, in __init__
self.handle()
File "/home/ubuntu/spark-2.1.1-bin-hadoop2.7/python/pyspark/accumulators.py", line 235, in handle
num_updates = read_int(self.rfile)
File "/home/ubuntu/spark-2.1.1-bin-hadoop2.7/python/pyspark/serializers.py", line 577, in read_int
raise EOFError
EOFError
---------------------------------------------------------------------------
Py4JError Traceback (most recent call last)
<ipython-input-22-f56812202624> in <module>()
1 final_df.cache()
----> 2 final_df.write.format('csv').save('final_test1')
~/spark-2.1.1-bin-hadoop2.7/python/pyspark/sql/readwriter.py in save(self, path, format, mode, partitionBy, **options)
548 self._jwrite.save()
549 else:
--> 550 self._jwrite.save(path)
551
552 @since(1.4)
~/spark-2.1.1-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py in __call__(self, *args)
1131 answer = self.gateway_client.send_command(command)
1132 return_value = get_return_value(
-> 1133 answer, self.gateway_client, self.target_id, self.name)
1134
1135 for temp_arg in temp_args:
~/spark-2.1.1-bin-hadoop2.7/python/pyspark/sql/utils.py in deco(*a, **kw)
61 def deco(*a, **kw):
62 try:
---> 63 return f(*a, **kw)
64 except py4j.protocol.Py4JJavaError as e:
65 s = e.java_exception.toString()
~/spark-2.1.1-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
325 raise Py4JError(
326 "An error occurred while calling {0}{1}{2}".
--> 327 format(target_id, ".", name))
328 else:
329 type = answer[1]
Py4JError: An error occurred while calling o3911.save
を試してみてください。一部のcsvが空白になるのは普通ですか?それには常に何百ものCSVファイルが付属しており、いくつかは空白です。 – Learner
はい、各パーティションが個別に書き込まれるので正常です。しかし、単一のファイルを出力したい場合は、書き込みの前にあなたのデータフレームに 'coalesce'を使うことができます(ただし、処理を順番どおりにするのはお勧めできません)。 'final_df.coalesce(1).write.csv( 'final_test1.csv')'を試してください。 – Prem