【问题标题】:Error with writing Parquet files to local disk将 Parquet 文件写入本地磁盘时出错
【发布时间】:2017-11-14 00:10:30
【问题描述】:

我正在本地磁盘上写入 spark 数据帧,但无法将其读回。

val path = "file:///mnt/resources/....."
df.write.parquet(path) 
val d = spark.read.parquet(path)

我收到以下错误:

org.apache.spark.sql.AnalysisException: Unable to infer schema for Parquet. It must be specified manually.;

我可以从/向 Azure Datalake 或存储读取和写入,但不能使用本地磁盘。 有没有人面临同样的问题?如何解决?我也用 .csv 文件进行了测试,在这种情况下,它说该文件不存在,即使我登录到工作节点时也可以看到该文件。

【问题讨论】:

    标签: azure apache-spark azure-storage parquet azure-data-lake


    【解决方案1】:

    TL;DR 写入本地文件系统仅对local 模式下的测试有用。

    在使用集群部署时,您不应使用本地文件系统进行写入。在这种情况下,每个 executor 都会写入自己的文件系统,之后就不可能实现一致的读取。

    【讨论】:

    • 感谢您的回复。您能否详细说明“不可能实现一致的读取”?我很想知道读取失败是如何发生的。
    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 2015-08-09
    • 2015-06-30
    • 1970-01-01
    相关资源
    最近更新 更多