繁体   English   中英

使用Spark SQL创建配置单元表

[英]Create hive table by using spark sql

我正在尝试通过使用spark-sql读取数据帧后以拼花文件格式创建配置单元表。表已在配置单元中以序列文件格式而不是拼花文件格式创建。但是在表路径中我可以看到拼花文件已创建。我无法从配置单元中查询此代码。这是我使用的代码。

df.write.option("path","/user/hive/warehouse/test/normal").format("parquet").mode("Overwrite").saveAsTable("test.people")

我正在使用Spark 2.3和Hive 2.3.3以及MapR Distribution

显示创建表的人:

ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'path'='maprfs:///user/hive/warehouse/test.db/people')
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'

LazySimpleSerDe适用于CSV,TSV和自定义分隔的文件

ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'path'='maprfs:///user/hive/warehouse/test.db/people')
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'

对于实木复合地板,您必须使用不同的SERDE,或者必须指定存储为实木复合地板。

STORED AS PARQUET
LOCATION ''
tblproperties ("parquet.compress"="SNAPPY");

由于您使用的是Spark,如果配置单元表已经存在,则它将不会仅触摸元数据信息更新的数据。 从技术上讲,它不会删除并重新创建表。 仅当表不存在时,它才会创建表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM