posiadającej dwa oddzielne wnioski pyspark że instancji HiveContext
zamiast SQLContext
pozwala jednym z dwóch aplikacji niepowodzeniem z błędem:Wiele aplikacji zapłonowe z HiveContext
Exception: ("You must build Spark with Hive. Export 'SPARK_HIVE=true' and run build/sbt assembly", Py4JJavaError(u'An error occurred while calling None.org.apache.spark.sql.hive.HiveContext.\n', JavaObject id=o34039))
Druga aplikacja kończy się pomyślnie.
Używam Spark 1.6 z API Pythona i chcę korzystać z niektórych funkcji Dataframe
, które są obsługiwane tylko przez(np. collect_set
). Miałem ten sam problem w wersji 1.5.2 i wcześniejszych.
To wystarczy, aby odtworzyć:
import time
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext
conf = SparkConf()
sc = SparkContext(conf=conf)
sq = HiveContext(sc)
data_source = '/tmp/data.parquet'
df = sq.read.parquet(data_source)
time.sleep(60)
sleep
jest tylko, aby zachować skrypt działa, a ja uruchomić inny proces.
Jeśli mam dwa wystąpienia tego skryptu, powyższy błąd pojawia się podczas odczytu pliku parkietu. Po zamianie HiveContext
na SQLContext
wszystko jest w porządku.
Czy ktoś wie, dlaczego tak jest?