TypeError: 'JavaPackage' - Objekt ist nicht aufrufbar
wenn ich den code der Funke sql-API hiveContext.sql()
from pyspark import SparkConf,SparkContext
from pyspark.sql import SQLContext,HiveContext
conf = SparkConf().setAppName("spark_sql")
sc = SparkContext(conf = conf)
hc = HiveContext(sc)
#rdd = sc.textFile("test.txt")
sqlContext = SQLContext(sc)
res = hc.sql("use teg_uee_app")
#for each in res.collect():
# print(each[0])
sc.stop()
Bekam ich die folgende Fehlermeldung:
enFile "spark_sql.py", line 23, in <module>
res = hc.sql("use teg_uee_app")
File "/spark/python/pyspark/sql/context.py", line 580, in sql
return DataFrame(self._ssql_ctx.sql(sqlQuery), self)
File "/spark/python/pyspark/sql/context.py", line 683, in _ssql_ctx
self._scala_HiveContext = self._get_hive_ctx()
File "/spark/python/pyspark/sql/context.py", line 692, in _get_hive_ctx
return self._jvm.HiveContext(self._jsc.sc())
TypeError: 'JavaPackage' object is not callable
wie füge ich SPARK_CLASSPATH oder SparkContext.addFile?Ich habe keine Idee.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht dies wird Ihnen helfen: Bei der Verwendung von HiveContext ich hinzufügen, drei Gläser an die Funke-Argumente vorbringen:
Natürlich die Pfade und Versionen sind auf Ihre cluster-setup.
In meinem Fall stellte sich heraus, dass ein classpath - Problem-ich hatte eine Hadoop-jar im classpath, dass war eine falsche version von Hadoop als ich laufen war.
Stellen Sie sicher, dass Sie nur die Vollstrecker und/oder Treiber klassenpfade in einem Ort ist und dass es kein system-wide default angewendet irgendwo wie
.bashrc
oder Sparkconf/spark-env.sh
.