ech*_*cho 5 python scala apache-spark parquet spark-dataframe
该应用程序包括
val stats = sqlContext.sql("select id, n from myTable")
stats.write.parquet("myTable.parquet")
Run Code Online (Sandbox Code Playgroud)
这将创建myTable.parquet除了空_SUCCESS文件之外没有任何内容的目录,即使是
stats.show // illustration only here, original size motivates parquet use
+-----+----+
| id | n |
+-----+----+
| a | 1 |
| b | 2 |
+-----+----+
stats.printSchema
root
|-- id: string (nullable = true)
|-- n: long (nullable = true)
Run Code Online (Sandbox Code Playgroud)
如何write.parquet编写数据帧的实际内容?有什么不见了 ?
注意这也会发生在saveAsTextFile.
就我而言,当我尝试将文件保存到本地文件系统而不是可从 Spark 集群访问的文件系统时,就会发生这种情况。
该文件由 Spark 工作节点写入,而不是由 PySpark 客户端写入,因此应将其输出到工作节点和客户端均可访问的文件系统。
一种可能是您查看了错误的目录。Spark 使用的默认文件系统由 Hadoop 配置选项指定fs.defaultFS。例如,如果你有类似的东西
<property>
<name>fs.defaultFS</name>
<value>file:///tmp</value>
</property>
Run Code Online (Sandbox Code Playgroud)
在您的 中core-site.xml,如果您省略输出路径的 URL 方案,则 Spark 会写入您的本地文件系统而不是 HDFS。反之亦然,如果是
<property>
<name>fs.defaultFS</name>
<value>hdfs://some-host:9000</value>
</property>
Run Code Online (Sandbox Code Playgroud)
Spark 默认写入 HDFS。
| 归档时间: |
|
| 查看次数: |
3179 次 |
| 最近记录: |