• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Spark 2.0 Insert Overwrite语法介绍

SPARK wangting 2周前 (11-06) 15次浏览

相关参数介绍:

参数
默认值
说明
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)