Java HiveContext createDataFrame在pySpark(jupyter)上不工作

Java HiveContext createDataFrame在pySpark(jupyter)上不工作,java,python,apache-spark,pyspark,spark-hive,Java,Python,Apache Spark,Pyspark,Spark Hive,我正在使用Jupyter笔记本对pySpark进行分析。我的代码最初使用sqlContext=sqlContext(sc)构建数据帧,但现在我切换到了HiveContext,因为我将使用窗口函数 我的问题是,现在我在尝试创建数据帧时遇到了一个Java错误: ## Create new SQL Context. from pyspark.sql import SQLContext from pyspark.sql import DataFrame from pyspark.sql import W

我正在使用Jupyter笔记本对pySpark进行分析。我的代码最初使用sqlContext=sqlContext(sc)构建数据帧,但现在我切换到了HiveContext,因为我将使用窗口函数

我的问题是,现在我在尝试创建数据帧时遇到了一个Java错误:

## Create new SQL Context.
from pyspark.sql import SQLContext
from pyspark.sql import DataFrame
from pyspark.sql import Window
from pyspark.sql.types import *
import pyspark.sql.functions as func

sqlContext = HiveContext(sc)
在此之后,我将数据读入RDD,并为DF创建模式

## After loading the data we define the schema.
fields = [StructField(field_name, StringType(), True) for field_name in data_header]
schema = StructType(fields)
现在,当我尝试构建DF时,我得到的错误是:

## Build the DF.
data_df = sqlContext.createDataFrame(data_tmp, schema)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
...
/home/scala/spark-1.6.1/python/pyspark/sql/context.pyc in _get_hive_ctx(self)
    690 
    691     def _get_hive_ctx(self):
--> 692         return self._jvm.HiveContext(self._jsc.sc())
    693 
    694     def refreshTable(self, tableName):

TypeError: 'JavaPackage' object is not callable

到目前为止,我一直在用谷歌搜索它,运气不好。非常感谢您的建议。

HiveContext
需要使用配置单元支持构建二进制文件。这意味着您必须启用配置单元配置文件。由于您使用的是
sbt组件
,因此您至少需要:

sbt -Phive assembly
使用Maven构建时也需要这样做,例如:

mvn -Phive -DskipTests clean package

看起来你自己创造了火花,对吗?如果是这样的话,你能提供一些关于这个方法的细节吗?@zero323是的,我遵循了一个与此非常相似的教程:。这看起来像是配置问题吗?如果你对如何解决这个问题有任何建议,我愿意重新安装。谢谢。谢谢,我试过
sbt-Phive汇编
,但现在它抱怨
不是有效的命令:Phive
。在尝试组装之前,我需要下载任何东西或执行任何其他操作吗?我听起来不对。你确定那里什么都没丢吗?您是否安装了sbt?如果没有,则可以使用
build/sbt
。如果无法解决此问题,也可以尝试弃用:
SPARK\u HIVE=true build/sbt assembly
我确实安装了sbt,当我运行命令时,它确实开始编译,但几分钟后失败。这是sbt-Phive组件的完整输出日志:您有什么建议吗?我被困在这里,无法访问所有HiveContext函数。终于让它工作了!问题是,我是用安装在我机器上的sbt版本进行组装的,而不是spark附带的版本。因此正确的运行方式是:
/home/scala/spark-1.6.1$sudo sbt/sbt-Phive assembly
。谢谢你的帮助。