use*_*641 16 csv scala apache-spark spark-dataframe
我使用Spark 1.6.0和Scala.
我想将DataFrame保存为压缩CSV格式.
这是我到目前为止(假设我已经拥有df
和sc
as SparkContext
):
//set the conf to the codec I want
sc.getConf.set("spark.hadoop.mapred.output.compress", "true")
sc.getConf.set("spark.hadoop.mapred.output.compression.codec", "true")
sc.getConf.set("spark.hadoop.mapred.output.compression.codec", "org.apache.hadoop.io.compress.GzipCodec")
sc.getConf.set("spark.hadoop.mapred.output.compression.type", "BLOCK")
df.write
.format("com.databricks.spark.csv")
.save(my_directory)
Run Code Online (Sandbox Code Playgroud)
输出gz
格式不正确.
小智 25
此代码适用于Spark 2.1,但.codec
不可用.
df.write
.format("com.databricks.spark.csv")
.option("codec", "org.apache.hadoop.io.compress.GzipCodec")
.save(my_directory)
Run Code Online (Sandbox Code Playgroud)
对于Spark 2.2,您可以使用df.write.csv(...,codec="gzip")
此处描述的选项:https://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlightlight =codec
Nic*_*mas 21
使用Spark 2.0+,这变得有点简单:
df.write.csv("path", compression="gzip")
Run Code Online (Sandbox Code Playgroud)
您不再需要外部Databricks CSV软件包.
该csv()
作家支持多种方便的选择.例如:
sep
:设置分隔符.quote
:是否以及如何引用值.header
:是否包含标题行.除了以下内容之外,您还可以使用许多其他压缩编解码器gzip
:
bzip2
lz4
snappy
deflate
编写器的完整Spark文档在csv()
这里:Python/Scala
在spark-csv github上:https: //github.com/databricks/spark-csv
人们可以读到:
codec
:保存到文件时使用的压缩编解码器.应该是实现org.apache.hadoop.io.compress.CompressionCodec的类的完全限定名称,或者是一个不区分大小写的缩短名称(bzip2,gzip,lz4和snappy).未指定编解码器时,默认为无压缩.
在你的情况下,这应该工作:
df.write.format("com.databricks.spark.csv").codec("gzip")\
.save('my_directory/my_file.gzip')
归档时间: |
|
查看次数: |
24953 次 |
最近记录: |