2015-09-30 13 views
7

scintilla scaricato 1.5.0 pre-costruito e gestito tramite pyspark questo semplice codicedeve costruire Spark con Hive (scintilla 1.5.0)

from pyspark.sql import Row 
l = [('Alice', 1)] 
sqlContext.createDataFrame(l).collect 

rendimenti errore:

15/09/30 06:48:48 INFO Datastore: The class "org.apache.hadoop.hive.metastore.model.MResourceUri" is tagged as "embedded-only" so do 
es not have its own datastore table. 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\bigdata\spark-1.5\spark-1.5.0\python\pyspark\sql\context.py", line 408, in createDataFrame 
    jdf = self._ssql_ctx.applySchemaToPythonRDD(jrdd.rdd(), schema.json()) 
    File "c:\bigdata\spark-1.5\spark-1.5.0\python\pyspark\sql\context.py", line 660, in _ssql_ctx 
    "build/sbt assembly", e) 
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=o28)) 

così provato a compilare io stesso pacchetto pulito

c:\bigdata\spark-1.5\spark-1.5.0>.\build\apache-maven-3.3.3\bin\mvn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests -Phive -Phive-t 

hriftserver

ma si ottiene lo stesso errore nella versione compilata.

Qualche suggerimento?

+0

Hai dimenticato di importare SqlContext e deve avvolgere scintilla Context – Eliethesaiyan

+0

Si può provare a eseguire 'sqlContext._get_hive_ctx()' e guardare i registri si ottiene solo dopo. Forse troverai qualcosa che ti indirizza nella giusta direzione (per me è stato un problema con due applicazioni concomitanti di pyspark che tentavano di inizializzare il database temporaneo di Derby). –

risposta

1

aggiungere queste righe dopo l'importazione della fila

from pyspark import SparkContext 
from pyspark.sql import SQLContext 
sc = SparkContext('local', 'pyspark') 
sqlContext = SQLContext(sc) 
+0

No, lo script pyspark crea un SQLContext (in realtà tenterà di creare un HiveContext) per te. Non dovresti crearne uno da solo in questo caso. –

Problemi correlati