Spark SQL----INSERT OVERWRITE DIRECTORY

打印 上一主题 下一主题

主题 667|帖子 667|积分 2001

一、描述

INSERT OVERWRITE DIRECTORY语句利用spark文件格式或Hive Serde,用新的值覆盖目录中的现有数据。利用Hive Serde必须启用Hive支持。插入的行可以由值表达式指定,也可以由查询结果指定。
二、语法

  1. INSERT OVERWRITE [ LOCAL ] DIRECTORY [ directory_path ]
  2.     { spark_format | hive_format }
  3.     { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }
复制代码
spark_format界说为
  1. USING file_format [ OPTIONS ( key = val [ , ... ] ) ]
复制代码
hive_format界说为
  1. [ ROW FORMAT row_format ] [ STORED AS hive_serde ]
复制代码
三、参数



  • directory_path
    指定目的目录。LOCAL关键字用于指定目录在本地文件系统上。在spark文件格式中,也可以利用path在OPTIONS中指定,但directory_path和path选项不能同时指定。
  • file_format
    指定用于插入的文件格式。有效选项为TEXT、CSV、JSON、JDBC、PARQUET、ORC、HIVE、LIBSVM,或org.apache.spark.sql.execution.datasources.FileFormat的自界说实现的完全限定类名。
  • OPTIONS ( key = val [ , … ] )
    指定一个或多个用于写入文件格式的选项。
  • hive_format
    指定用于插入的文件格式。row_format和hive_serde都是可选的。ROW FORMAT SERDE只能与 TEXTFILE, SEQUENCEFILE或RCFILE一起利用,而ROW FORMAT DELIMITED只能与TEXTFILE一起利用。假如两者都没有界说,spark将利用TEXTFILE。
  • row_format
    指定此插入的行格式。有效的选项是SERDE子句和DELIMITED子句。SERDE子句可用于为此插入指定自界说SerDe。或者,DELIMITED子句可以用于指定本机SerDe并声明分隔符、转义符、null字符等。
  • hive_serde
    指定此插入的文件格式。有效选项为TEXTFILE、SEQUENCEFILE、RCFILE、ORC、PARQUET和AVRO。你也可以利用INPUTFORMAT和OUTPUTFORMAT指定自己的输入和输特别式。
  • VALUES ( { value | NULL } [ , … ] ) [ , ( … ) ]
    指定要插入的值。可以插入显式指定的值或NULL。必须利用逗号分隔子句中的每个值。可以指定多个值集来插入多行。
  • query
    生成要插入的行的查询。它可以是以下格式之一:

    • SELECT语句
    • Inline Table语句
    • FROM语句

四、例子

4.1 Spark format

  1. INSERT OVERWRITE DIRECTORY '/tmp/destination'
  2.     USING parquet
  3.     OPTIONS (col1 1, col2 2, col3 'test')
  4.     SELECT * FROM test_table;
  5. INSERT OVERWRITE DIRECTORY
  6.     USING parquet
  7.     OPTIONS ('path' '/tmp/destination', col1 1, col2 2, col3 'test')
  8.     SELECT * FROM test_table;
复制代码
4.2 Hive format

  1. INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
  2.     STORED AS orc
  3.     SELECT * FROM test_table;
  4. INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
  5.     ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
  6.     SELECT * FROM test_table;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表