当前位置: 首页 > 知识库问答 >
问题:

Spark 2.0 with Zeppelin 0.6.1-SQLContext不可用

舒俊雄
2023-03-14

我正在Linux服务器上运行Spark2.0和Zeppelin-0.6.1-bin。默认的spark笔记本运行得很好,但当我尝试使用sqlContext在pyspark中创建并运行一个新笔记本时,我得到错误“py4j.py4jException:Method createDataFrame([class java.util.ArrayList,class java.util.ArrayList,null])不存在”

我试着运行一个简单的代码,

%pyspark

wordsDF = sqlContext.createDataFrame([('cat',), ('elephant',), ('rat',), ('rat',), ('cat', )], ['word'])
wordsDF.show()
print type(wordsDF)
wordsDF.printSchema()

我知道这个错误,

Traceback (most recent call last):
  File "/tmp/zeppelin_pyspark-7635635698598314374.py", line 266, in 
    raise Exception(traceback.format_exc())
Exception: Traceback (most recent call last):
  File "/tmp/zeppelin_pyspark-7635635698598314374.py", line 259, in 
    exec(code)
  File "", line 1, in 
  File "/spark/spark-2.0.0-bin-hadoop2.7/python/pyspark/sql/context.py", line 299, in createDataFrame
    return self.sparkSession.createDataFrame(data, schema, samplingRatio)
  File "/spark/spark-2.0.0-bin-hadoop2.7/python/lib/py4j-0.10.1-src.zip/py4j/java_gateway.py", line 933, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/spark/spark-2.0.0-bin-hadoop2.7/python/pyspark/sql/utils.py", line 63, in deco
    return f(*a, **kw)
  File "/spark/spark-2.0.0-bin-hadoop2.7/python/lib/py4j-0.10.1-src.zip/py4j/protocol.py", line 316, in get_return_value
    format(target_id, ".", name, value))
Py4JError: An error occurred while calling o48.createDataFrame. Trace:
py4j.Py4JException: Method createDataFrame([class java.util.ArrayList, class java.util.ArrayList, null]) does not exist
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326)
    at py4j.Gateway.invoke(Gateway.java:272)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:128)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:211)
    at java.lang.Thread.run(Thread.java:745)

当我使用“SQLContext=SQLContext(sc)”尝试相同的代码时,它工作得很好。

我尝试设置解释器“zeppelin.spark.UseHiveContext false”配置,但没有起作用。

显然我一定漏了什么,因为这是一个如此简单的操作。请建议,如果有任何其他配置要设置或我缺少什么。

我用Zeppelin0.6.0测试了同一段代码,它运行良好。

共有1个答案

陆栋
2023-03-14

sparksession是Spark 2.0.0的默认入口点,该入口点映射到Zeppelin 0.6.1中的Spark(与Spark shell一样)。您是否尝试过spark.createDataFrame(...)

 类似资料:
  • 一、概述 SqlContext是一个轻量级的Sql帮助类,旨在提供一种快速、简洁、优雅地数据库访问方法。 二、使用方法 本示例程序使用SQLite数据库,需要先安装SQLite的支持库。 class Program{    static void Main(string[] args)    {        /*0.创建连接*/        var conn = new SQLiteConne

  • 在此输入图像说明 error_------------------------------------------------------------Py4JJavaError Traceback(最近调用last)in()---->1 sparkDF=sqlcontext.read.format('com.databricks.spark) /home/ec2-user/spark/python

  • 问题内容: 和之间有什么区别? 是否有使用转换或创建Context的方法? 我可以使用一个条目完全替换所有上下文吗? 在所有的功能,和也? 某些功能在和中具有不同的行为。他们的行为如何? 如何使用?创建以下内容? 有没有一种方法可以将a 转换为a 或a 转换为a ? 问题答案: 是Scala实现的入口点,是的Java包装器。 是SparkSQL的入口点,可以从2.xx 接收.RDD,DataFra

  • 我在Microsoft Windows7上使用的是。我想在一个变量中加载csv文件,以便稍后执行与SQL相关的操作,但无法这样做。我从这个链接引用了公认的答案,但没有用。我按照以下步骤创建对象和对象: 当我尝试时,它会说没有找到df。我尝试了从附加链接加载CSV的databricks解决方案。它下载软件包,但不加载csv文件。那么我怎样才能纠正我的问题呢?提前致谢:)

  • 问题内容: 问题 我想在Java中创建一个用户定义函数,可以将其称为Apache Spark运算符链中的Java方法。我在查找不需要UDF存在于SQL查询中的Java示例时遇到了麻烦。 版本号 Java 8 斯卡拉2.10.6 为Hadoop 2.6.0预先构建的Apache Spark 1.6.0 我尝试过的方法 我可以用Java成功创建UDF。但是,除非在SQL查询中,否则无法使用它: 我被困