0
点赞
收藏
分享

微信扫一扫

Spark 2.0 Insert Overwrite语法介绍

相关参数介绍:

参数

默认值

说明

spark.sql.output.codec

none

使用的序列化方式,如snappy,lzo等,默认为不压缩。

spark.sql.output.coalesceNum

200

写入到指定目录的数据合并后文件的个数,仅当spark.sql.output.merge设为true时生效。

spark.sql.output.delimiter

"\t"

仅当spark.sql.output.format为csv时生效,用于指定字段文本之间的分隔符,默认为制表符。

spark.sql.output.format

csv

写入到指定目录的文件格式,支持spark原生支持的datasource,如parquet,orc,json,csv等,默认为csv,指定为csv时文本分隔符由spark.sql.output.delimiter指定。

spark.sql.output.merge

false

是否合并输出文件,设为true时,写入到指定目录的数据会合并为spark.sql.output.coalesceNum指定的个数。

语法说明

insert overwrite语法如下:

insert [overwrite] directory <path> <query>

其中:

  • path为待写入的hdfs目录
  • query为执行的SQL query。
  • overwrite可选,指定则会覆盖指定目录原有内容,否则在指定目录非空时报错。

使用示例

以一张test表为例:

spark-sql> set spark.sql.output.format=orc;
spark.sql.output.format orc
Time taken: 1.331 seconds, Fetched 1 row(s)
spark-sql> set spark.sql.output.codec=snappy;
spark.sql.output.codec snappy
Time taken: 1.222 seconds, Fetched 1 row(s)
insert overwrite directory '/app/dc/spark/test_output' select * from people_orc1;
Time taken: 4.537 seconds

执行成功后,/app/dc/spark/test_output路径下将存在数据:

-rw-r--r-- 3 spark spark 0 2016-12-20 18:36 /app/dc/spark/test_output/_SUCCESS
-rw-r--r-- 3 spark spark 328 2016-12-20 18:36 /app/dc/spark/test_output/part-r-00000-c0185b61-04bc-4168-8ba7-7e7357d4bb83.snappy.orc
举报

相关推荐

0 条评论