【发布时间】:2016-03-29 12:01:03
【问题描述】:
我有一个基于 https://github.com/gettyimages/docker-spark 的本地 spark 测试集群,包括 R。特别是使用了这张图片:https://hub.docker.com/r/possibly/spark/
尝试使用 sparkR 读取 parquet 文件会发生此异常。在本地 spark 安装中读取 parquet 文件没有任何问题。
myData.parquet <- read.parquet(sqlContext, "/mappedFolder/myFile.parquet")
16/03/29 20:36:02 ERROR RBackendHandler: parquet on 4 failed
Fehler in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
java.lang.AssertionError: assertion failed: No predefined schema found, and no Parquet data files or summary files found under file:/mappedFolder/myFile.parquet.
at scala.Predef$.assert(Predef.scala:179)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRelation$MetadataCache.org$apache$spark$sql$execution$datasources$parquet$ParquetRelation$MetadataCache$$readSchema(ParquetRelation.scala:512)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRelation$MetadataCache$$anonfun$12.apply(ParquetRelation.scala:421)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRelation$MetadataCache$$anonfun$12.apply(ParquetRelation.scala:421)
at scala.Option.orElse(Option.scala:257)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRelation$MetadataCache.refresh(ParquetRelation.scala:421)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRelation.org$apache$spark$sql$execution$datasources$parquet$ParquetRelation$$metadataCac
奇怪的是相同的错误是相同的 - 即使对于不存在的文件。
但是在终端中我可以看到文件在那里:
/mappedFolder/myFile.parquet
root@worker:/mappedFolder/myFile.parquet# ls
_common_metadata part-r-00097-e5221f6f-e125-4f52-9f6d-4f38485787b3.gz.parquet part-r-00196-e5221f6f-e125-4f52-9f6d-4f38485787b3.gz.parquet
....
【问题讨论】:
-
在这种情况下,我宁愿在项目的跟踪器上打开一个问题。在这种情况下,它可以是任何东西。你是如何定义 /mappedFolder 的?
-
我把它定义为
volumes: - ./someLocalPath/:/mappedFolder -
这个文件夹挂载了吗?首先访问您的虚拟机,然后检查。我猜这是由于一些 vbox 未安装的文件夹...
-
不,它被挂载为
root@worker:/mappedFolder/myFile.parquet# ls返回文件 -
正如你所建议的,我为此issues.apache.org/jira/browse/SPARK-14250创建了一个问题
标签: apache-spark docker parquet sparkr