Chciałbym pracować lokalnie pracować w Pyspark, używając konkretnej wersji Hadoop (powiedzmy Hadoop-AWS 2.8.5) z powodu niektórych funkcji.
Wersje PYSPARK wydają się być wyrównane z wersjami zapłonowymi.
Tutaj używam Prapark 2.4.5, który wydaje się owijać iskrę 2.4.5.
Podczas przesyłania mojej pracy Pyspark, przy użyciu spark-submit --local[4] ...
, z opcją --conf spark.jars.packages=org.apache.hadoop:hadoop-aws:2.8.5
, napotkam następujący błąd:
py4j.protocol.Py4JJavaError: An error occurred while calling o32.sql
Z następującymi wyjątkami Java:
java.lang.NoClassDefFoundError: org/apache/hadoop/fs/StorageStatistics
Lub:
java.lang.IllegalAccessError: tried to access method org.apache.hadoop.metrics2.lib.MutableCounterLong.<init (Lorg/apache/hadoop/metrics2/MetricsInfo;J)V from class org.apache.hadoop.fs.s3a.S3AInstrumentation
Przypuszczam, że wersja PYSPARK HADOOP HADOOP jest niezrównana z tym, który przechodzę do opcji spark-submit
spark.jars.packages
.
Ale nie mam pojęcia o tym, jak mogę to zrobić? :)
1 odpowiedź
Domyślna iskra Disto ma biblioteki Hadoop. Pierwsze biblioteki wywoławcze (własne) biblioteki. Więc powinieneś ustawić --conf spark.driver.userClassPathFirst=true
i dla klastra Dodaj --conf spark.executor.userClassPathFirst=true
lub pobierz Spark Distro bez Hadoop. Prawdopodobnie będziesz musiał umieścić twoją Distro Hadoop do katalogu słoików iskier.
Podobne pytania
Nowe pytania
apache-spark
APACHE iskry jest otwartym źródłem rozdzielony silnik przetwarzania danych napisany w SCALA zapewniający ujednolicone interfejs API i rozproszone zestawy danych dla użytkowników zarówno do obróbki wsadowej, jak i strumieniowej. Przypadki do użycia dla iskier w Apache często są związane z przetwarzaniem maszyny / głębokości i wykresu.