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

2024-10-01 15:40:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我得到了以下错误:

^{pr2}$

我在windows7pc上运行这个,spark-2.1.0-bin-hadoop2.7和python2.7.13(2016年12月17日)。在

谢谢你的建议。在


Tags: 文件jsonbin错误people建议sparkjsonfile
3条回答

你可能忘了导入隐式。这就是我在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]:https://docs.databricks.com/spark/latest/data-sources/read-json.html

首先,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

相关问题 更多 >

    热门问题