Python 如何修复此错误:“quot;SQLContext对象没有属性';jsonFile';

Python 如何修复此错误:“quot;SQLContext对象没有属性';jsonFile';,python,json,apache-spark,pyspark,Python,Json,Apache Spark,Pyspark,我正在学习火花。当我尝试加载json文件时,如下所示: people=sqlContext.jsonFile("C:\wdchentxt\CustomerData.json") 我得到了以下错误: AttributeError: 'SQLContext' object has no attribute 'jsonFile' 我在Windows7 PC上运行这个程序,带有spark-2.1.0-bin-hadoop2.7和Python 2.7.13(2016年12月17日) 感谢您提供的任何建

我正在学习火花。当我尝试加载json文件时,如下所示:

people=sqlContext.jsonFile("C:\wdchentxt\CustomerData.json")
我得到了以下错误:

AttributeError: 'SQLContext' object has no attribute 'jsonFile'
我在Windows7 PC上运行这个程序,带有spark-2.1.0-bin-hadoop2.7和Python 2.7.13(2016年12月17日)


感谢您提供的任何建议。

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

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

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

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


[1]:

其次,您需要确保您的SqlContext设置正确,如下所述:。在我的情况下,它的设置如下:

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')
请注意,他们提供了特定于版本的快速入门教程,可以帮助您正确完成一些基本操作,如下所述:

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

您可以在此处找到有关Spark所有版本特定更改的指南:


您还可以在此处找到有关Spark和PySpark的版本特定文档(例如,对于版本1.6.1):

我在macOS上有Spark 2.0.0。但是,您能否检查
sqlContext.read.json()
是否适合您?对我来说,如果我想定制spark的配置,我也可以做
sc=SparkContext(conf=conf)
然后
sqlContext=sqlContext(sc)
.jsonFile已经被弃用;您应该改用
.read.json()
。谢谢大家的快速帮助。当我用“read.json”替换“.jsonFile”时,它就起作用了。这是个简单的解决办法。