2015-09-30 12 views
7

indirilen kıvılcım ile Spark inşa etmeliyiz 1.5.0 önceden oluşturulmuş ve bu basit kodu pyspark aracılığıyla çalıştırmakHive (kıvılcım 1.5.0)

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

hata verir:

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)) 

böylece derlemeye çalıştık kendim

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 temiz paket

ama yine de derlenmiş sürümde aynı hatayı alıyorsunuz.

Herhangi bir öneriniz var mı?

+0

aktardıktan sonra bu satırı ekleyin ve Bunu) 'sqlContext._get_hive_ctx (çalıştırmayı deneyin' ve sadece almak günlükleri bakabilirsiniz kıvılcım Bağlam – Eliethesaiyan

+0

sarmak zorundadır sonra. Belki de orada size doğru yönde işaret eden bir şey bulacaksınız (benim için geçici Derby veritabanını başlatmaya çalışan iki eşzamanlı pyspark uygulamasında bir sorun vardı). –

cevap

1

Sen SqlContext içe unuttum satır

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

Hayır, pyspark betiği sizin için bir SQLContext (aslında bir HiveContext oluşturmaya çalışacaktır) oluşturur. Bu durumda kendiniz yaratmamalısınız. –