我该如何阅读由Spark编写的PySpark拼花?

2024-05-20 10:45:31 发布

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

我在用两个笔记本做不同的分析。在我的Scala笔记本中,我将一些清理过的数据写到拼花上:

partitionedDF.select("noStopWords","lowerText","prediction").write.save("swift2d://xxxx.keystone/commentClusters.parquet")

然后我去我的Python笔记本读取数据:

df = spark.read.load("swift2d://xxxx.keystone/commentClusters.parquet")

我得到以下错误:

AnalysisException: u'Unable to infer schema for ParquetFormat at swift2d://RedditTextAnalysis.keystone/commentClusters.parquet. It must be specified manually;'

我已经看过spark文档,我认为不应该要求我指定模式。有人碰到这样的事吗?当我保存/加载时,我应该做些别的事情吗?数据正在对象存储中着陆。

编辑: 我在读和写中都唱spark 2.0。

编辑2: 这是在一个数据科学经验项目中完成的。


Tags: 数据编辑keystone笔记本selectspark拼花scala
2条回答

您可以使用Spark会话的parquet格式读取拼花文件。像这样:

df = spark.read.parquet("swift2d://xxxx.keystone/commentClusters.parquet")

不过,parquetload函数之间没有区别。可能是由于load无法推断文件中数据的架构(例如,某些数据类型不可由load识别或特定于parquet)。

我读拼花文件的方式如下:

from pyspark.sql import SparkSession
# initialise sparkContext
spark = SparkSession.builder \
    .master('local') \
    .appName('myAppName') \
    .config('spark.executor.memory', '5gb') \
    .config("spark.cores.max", "6") \
    .getOrCreate()

sc = spark.sparkContext

# using SQLContext to read parquet file
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

# to read parquet file
df = sqlContext.read.parquet('path-to-file/commentClusters.parquet')

相关问题 更多 >