我如何阅读从Spark编写的PySpark中的镶木地板?

Ros*_*wis 25 python scala apache-spark pyspark data-science-experience

我在分析中使用两个Jupyter笔记本来做不同的事情.在我的Scala笔记本中,我将一些已清理的数据写入镶木地板:

partitionedDF.select("noStopWords","lowerText","prediction").write.save("swift2d://xxxx.keystone/commentClusters.parquet")
Run Code Online (Sandbox Code Playgroud)

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

df = spark.read.load("swift2d://xxxx.keystone/commentClusters.parquet")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AnalysisException: u'Unable to infer schema for ParquetFormat at swift2d://RedditTextAnalysis.keystone/commentClusters.parquet. It must be specified manually;'
Run Code Online (Sandbox Code Playgroud)

我查看了spark文档,我认为不应该要求我指定一个模式.有没有人碰到这样的事情?我保存/加载时应该做些什么吗?数据将在对象存储中登陆.

编辑:我在读取和写入时都会唱出spark 2.0.

edit2:这是在Data Science Experience的一个项目中完成的.

Jer*_*ril 33

我通过以下方式阅读镶木地板文件:

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')
Run Code Online (Sandbox Code Playgroud)


him*_*ian 11

您可以使用parquetSpark Session的格式来读取镶木地板文件.像这样:

df = spark.read.parquet("swift2d://xxxx.keystone/commentClusters.parquet")
Run Code Online (Sandbox Code Playgroud)

虽然,功能parquetload功能没有区别.情况可能load是无法推断文件中的数据模式(例如,某些数据类型无法识别load或特定于parquet).