如何修复此错误:“SQLContext 对象没有属性‘jsonFile’

Posted

技术标签:

【中文标题】如何修复此错误:“SQLContext 对象没有属性‘jsonFile’【英文标题】:How to fix this error: "SQLContext object has no no attribute 'jsonFile' 【发布时间】:2017-01-13 19:06:13 【问题描述】:

我现在正在学习 Spark。当我尝试加载一个json文件时,如下:

people=sqlContext.jsonFile("C:\wdchentxt\CustomerData.json")

我收到以下错误:

AttributeError: 'SQLContext' object has no attribute 'jsonFile'

我在 Windows 7 PC 上运行它,使用 spark-2.1.0-bin-hadoop2.7 和 Python 2.7.13(2016 年 12 月 17 日)。

感谢您提出的任何建议。

【问题讨论】:

我在 macOS 上安装了 Spark 2.0.0。但是,您能检查一下sqlContext.read.json() 是否适合您吗?对我来说,如果我想自定义我的 spark 配置,我也可以sc = SparkContext(conf=conf) 然后sqlContext = SQLContext(sc) .jsonFile 已被弃用;你应该改用.read.json() 感谢大家的快速帮助。当我用“read.json”替换“.jsonFile”时它起作用了。这很容易解决。 【参考方案1】:

您可能忘记导入隐式。这就是我在 Scala 中的解决方案:

def loadJson(filename: String, sqlContext: SqlContext): Dataset[Row] = 
  import sqlContext._
  import sqlContext.implicits._
  val df = sqlContext.read.json(filename)
  df

【讨论】:

【参考方案2】:

首先,较新的 Spark 版本(如您正在使用的版本)涉及 .read.json(..),而不是已弃用的 .readJson(..)

其次,您需要确保您的 SqlContext 设置正确,如此处所述:pyspark : NameError: name 'spark' is not defined。就我而言,它的设置如下:

from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
myObjects = sqlContext.read.json('file:///home/cloudera/Downloads/json_files/firehose-1-2018-08-24-17-27-47-7066324b')

请注意,他们有特定于版本的快速入门教程,可以帮助您正确完成一些基本操作,如下所述:name spark is not defined

因此,我的观点是始终检查以确保您使用的任何库或语言(这通常适用于所有技术)遵循与您正在运行的版本相匹配的文档,因为它非常常见如果存在版本不匹配,则破坏性更改会造成很多混乱。如果您尝试使用的技术在您正在运行的版本中没有很好地记录,那么您需要评估是否应该升级到更新的版本或与维护项目的人一起创建支持票,以便您可以帮助他们更好地支持他们的用户。

您可以在此处找到有关 Spark 的所有特定版本更改的指南:https://spark.apache.org/docs/latest/sql-programming-guide.html#upgrading-from-spark-sql-16-to-20

您还可以在此处找到有关 Spark 和 PySpark 的版本特定文档(例如,对于版本 1.6.1):https://spark.apache.org/docs/1.6.1/sql-programming-guide.html

【讨论】:

【参考方案3】:

如前所述,.jsonFile (...) 已被弃用1,请改用:

people = sqlContext.read.json("C:\wdchentxt\CustomerData.json").rdd

来源

[1]:https://docs.databricks.com/spark/latest/data-sources/read-json.html

【讨论】:

以上是关于如何修复此错误:“SQLContext 对象没有属性‘jsonFile’的主要内容,如果未能解决你的问题,请参考以下文章

如何获得修复此错误的 Stacktrace?

如何使用嵌入 webhook 的 discord.py 修复此错误

如何修复此 MYSQL//Phpmyadmin 错误? [复制]

如何修复此“忽略 SQL 语句”错误?

如何在我的查询中修复此语法错误?

PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误?