Jeśli zacznę się pyspark a następnie uruchomić polecenie:Jaka jest różnica między spark-submit i pyspark?
import my_script; spark = my_script.Sparker(sc); spark.collapse('./data/')
Wszystko jest OK. Jeśli jednak staram się robić to samo za pomocą poleceń i iskra-przedstawienia, pojawia się błąd:
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()
Dlaczego tak się dzieje? Jaka jest różnica między uruchamianiem pyspark a uruchamianiem iskierników, które mogłyby spowodować tę rozbieżność? I w jaki sposób mogę sprawić, by ta praca była w stanie iskrzenia?
EDYCJA: Próbowałem uruchomić to z powłoki bash, wykonując pyspark my_script.py collapse ./data/
i otrzymałem ten sam błąd. Jedyny czas, kiedy wszystko działa, to gdy znajduję się w powłoce Pythona i zaimportuję skrypt.
miałeś na myśli wywołanie iskry, a nie pisspar. Ponadto wyjaśnia to, co robi spark-submit, ale to nie było pytanie. Pytanie dotyczyło różnicy między iskrzeniem i pyspark. Odpowiedź avrsanjaya była odpowiedzią. –
Nie ma czegoś takiego jak pyspark-submit –