Nếu tôi bắt đầu lên pyspark và sau đó chạy lệnh này:Sự khác nhau giữa tia lửa gửi và pyspark là gì?
import my_script; spark = my_script.Sparker(sc); spark.collapse('./data/')
Tất cả mọi thứ là A-ok. Tuy nhiên, nếu tôi cố gắng làm điều tương tự thông qua các dòng lệnh và châm ngòi cho đăng, tôi nhận được một lỗi:
Command: /usr/local/spark/bin/spark-submit my_script.py collapse ./data/
File "/usr/local/spark/python/pyspark/rdd.py", line 352, in func
return f(iterator)
File "/usr/local/spark/python/pyspark/rdd.py", line 1576, in combineLocally
merger.mergeValues(iterator)
File "/usr/local/spark/python/pyspark/shuffle.py", line 245, in mergeValues
for k, v in iterator:
File "/.../my_script.py", line 173, in _json_args_to_arr
js = cls._json(line)
RuntimeError: uninitialized staticmethod object
my_script:
...
if __name__ == "__main__":
args = sys.argv[1:]
if args[0] == 'collapse':
directory = args[1]
from pyspark import SparkContext
sc = SparkContext(appName="Collapse")
spark = Sparker(sc)
spark.collapse(directory)
sc.stop()
Tại sao điều này xảy ra? Sự khác biệt giữa chạy pyspark và chạy spark-submit sẽ gây ra sự khác biệt này là gì? Và làm cách nào tôi có thể thực hiện công việc này trong việc gửi phản hồi?
EDIT: Tôi đã thử chạy ứng dụng này từ bash shell bằng cách thực hiện pyspark my_script.py collapse ./data/
và tôi gặp lỗi tương tự. Thời gian duy nhất khi mọi thứ hoạt động là khi tôi đang ở trong một trình bao python và nhập khẩu tập lệnh.
có nghĩa là bạn không cần phải gửi pyspark-submit. Ngoài ra, điều này giải thích những gì spark-gửi làm, nhưng đó không phải là câu hỏi. Câu hỏi đặt ra là sự khác biệt giữa tia lửa gửi và pyspark. Câu trả lời của avrsanjay là một câu trả lời. –
Không có điều gì như pyspark-submit –