【问题标题】:Spark 1.4.1 - Using pysparkSpark 1.4.1 - 使用 pyspark
【发布时间】:2015-11-30 04:21:24
【问题描述】:

我尝试使用这个命令,我得到错误

代码

 instances = sqlContext.sql("SELECT instance_id ,instance_usage_code 
 FROM ib_instances WHERE (instance_usage_code) = 'OUT_OF_ENTERPRISE' ")

 instances.write.format("orc").save("instances2")

 hivectx.sql(""" CREATE TABLE IF NOT EXISTS instances2 (instance_id 
 string, instance_usage_code STRING)""" )

 hivectx.sql (" LOAD DATA LOCAL INPATH '/home/hduser/instances2' into 
 table instances2 ")

错误

Traceback(最近一次调用最后一次):文件 “/home/hduser/spark_script.py”,第 57 行,在 instance.write.format("orc").save("instances2") 文件 "/usr/local/spark-1.4.1-bin-hadoop2.6/python/lib/pyspark.zip/pyspark/s ql/readwriter.py",第 304 行,在保存文件中 "/usr/local/spark-1.4.1-bin-hadoop2.6/python/lib/py4j-0.8.2.1-src.zip/ py4j/java_gateway.py",第 538 行,在 call 文件中 "/usr/local/spark-1.4.1-bin-hadoop2.6/python/lib/py4j-0.8.2.1-src.zip/ py4j/protocol.py”,第 300 行,在 get_return_value 中 py4j.protocol.Py4JJavaError:调用 o55.save 时出错。 : java.lang.AssertionError: assertion failed: ORC数据源可以 仅与 HiveContext 一起使用。在 scala.Predef$.assert(Predef.scala:179) 在 org.apache.spark.sql.hive.orc.DefaultSource.createRelation(OrcRelation .scala:54) 在 org.apache.spark.sql.sources.ResolvedDataSource$.apply(ddl.scala:322) 在 org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:144) 在 org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:135) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j ava:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess orImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231) 在 py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379) 在 py4j.Gateway.invoke(Gateway.java:259) 在 py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) 在 py4j.commands.CallCommand.execute(CallCommand.java:79) 在 py4j.GatewayConnection.run(GatewayConnection.java:207) 在 java.lang.Thread.run(Thread.java:745)

【问题讨论】:

    标签: apache-spark-sql


    【解决方案1】:

    我的猜测是您创建了一个标准 SQLContext,而不是 Hive 一个(添加了几个选项)。将您的 sqlContext 创建为 HiveContext 实例。 scala版本是:

    val sqlContext = new HiveContext(sc)
    

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 2023-03-09
      • 2015-11-11
      相关资源
      最近更新 更多