如何在spark-sql而不是spark-shell中将表格作为镶木地板文件输出?

时间:2017-12-06 00:58:58

标签: sql apache-spark apache-spark-sql

使用spark-sql 很容易从CSV文件中读取表格。

CREATE TABLE MyTable (
    X   STRING,
    Y   STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
    "separatorChar" = "\,",
    "quoteChar"     = "\""
)
STORED AS TEXTFILE;

LOAD DATA LOCAL INPATH 'input.csv' INTO TABLE MyTable;

但是如何将此结果输出为Parquet文件?

PS:我知道如何在spark-shell中做到这一点,但这不是我想要的。

1 个答案:

答案 0 :(得分:3)

您必须创建一个表,其中结果的架构存储在作为镶木地板的配置单元中。获得结果后,您可以将它们导出到这样的镶木地板文件格式表中。

set hive.insert.into.external.tables = true

create external table mytable_parq ( use your source table DDL) stored as parquet location '/hadoop/mytable';

insert into mytable_parq select * from mytable ;

insert overwrite directory '/hadoop/mytable' STORED AS PARQUET select * from MyTable ;