【问题标题】:Reading parquet file with PySpark使用 PySpark 读取镶木地板文件
【发布时间】:2018-08-13 19:02:14
【问题描述】:

我是 Pyspark 的新手,似乎没有任何解决办法。请解救。 我想用 Pyspark 读取镶木地板文件。我写了以下代码。

from pyspark.sql import SQLContext

sqlContext = SQLContext(sc)

sqlContext.read.parquet("my_file.parquet")

我收到以下错误

Py4JJavaError Traceback(最近调用 最后)/usr/local/spark/python/pyspark/sql/utils.py in deco(*a, **kw) 62 尝试: ---> 63 返回 f(*a, **kw) 64 除了 py4j.protocol.Py4JJavaError as e:

/usr/local/spark/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py 在 get_return_value(answer, gateway_client, target_id, name) 318 "调用 {0}{1}{2} 时出错。\n"。 --> 319 格式(target_id,“.”,名称),值) 320 其他:

然后我尝试了以下代码

from pyspark.sql import SQLContext

sc = SparkContext.getOrCreate()

SQLContext.read.parquet("my_file.parquet")

然后报错如下:

AttributeError: 'property' 对象没有属性 'parquet'

【问题讨论】:

  • 试试这个:SQLContext.read.format("parquet").load("my_file.parquet")。同样的错误?
  • @Steven ... 尝试但同样的错误。我认为错误在于创建 sql 上下文。
  • @deega 你能把这个镶木地板文件上传到某个地方吗?

标签: pyspark parquet


【解决方案1】:

你需要先创建一个 SQLContext 的实例。

这将在 pyspark shell 中工作:

from pyspark.sql import SQLContext

sqlContext = SQLContext(sc)
sqlContext.read.parquet("my_file.parquet")

如果您使用的是 spark-submit,则需要创建 SparkContext,在这种情况下您可以这样做:

from pyspark import SparkContext
from pyspark.sql import SQLContext

sc = SparkContext()
sqlContext = SQLContext(sc)
sqlContext.read.parquet("my_file.parquet")

【讨论】:

    【解决方案2】:
    from pyspark import SparkConf, SparkContext
    from pyspark.sql import SQLContext
    sc.stop()
    conf = (conf.setMaster('local[*]'))
    sc = SparkContext(conf = conf)
    sqlContext = SQLContext(sc)
    
    df = sqlContext.read.parquet("my_file.parquet")
    

    试试这个。

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 2021-03-19
      • 2020-03-14
      • 2021-11-10
      • 2018-05-14
      • 1970-01-01
      • 2019-08-04
      • 2019-09-23
      • 2016-09-12
      相关资源
      最近更新 更多