Se start up pyspark e quindi eseguire il seguente comando:Qual è la differenza tra spark-submit e pyspark?
import my_script; spark = my_script.Sparker(sc); spark.collapse('./data/')
Tutto è A-OK. Se, invece, cerco di fare la stessa cosa attraverso la riga di comando e scintilla-presentare, ottengo un errore:
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
mio_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()
Perché succede questo? Qual è la differenza tra l'esecuzione di pyspark e l'esecuzione di una scintilla che causerebbe questa divergenza? E come posso fare questo lavoro in spark-submit?
EDIT: Ho provato a farlo dalla shell bash facendo pyspark my_script.py collapse ./data/
e ho ottenuto lo stesso errore. L'unica volta in cui tutto funziona è quando sono in una shell python e importa lo script.
intendevi spark-submit non pyspark-submit. Inoltre, questo spiega cosa fa lo spark-submit, ma non era questa la domanda. La domanda riguardava la differenza tra spark-submit e pyspark. La risposta di avrsanjay era una risposta. –
Non esiste una cosa come pyspark-submit –