gpt4 book ai didi

java - HiveContext createDataFrame 不适用于 pySpark (jupyter)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:16 31 4
gpt4 key购买 nike

我正在使用 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 需要使用 Hive 支持构建的二进制文件。这意味着您必须启用 Hive 配置文件。因为你使用 sbt assembly 你至少需要:

sbt -Phive assembly

使用 Maven 构建时需要同样的,例如:

mvn -Phive -DskipTests clean package

关于java - HiveContext createDataFrame 不适用于 pySpark (jupyter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38360692/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com