apache-spark - 我有56列的表格,想加载46列的数据,我该怎么办?

标签 apache-spark hadoop hive hiveql

我有一个包含56列的表(主表),我想从另一个包含46列的表中将数据加载到该表中。我尝试将46列数据导出到CSV并尝试将数据加载到主表中。虽然已加载,但数据不匹配。任何人都可以在这方面帮助我...
Empid包含emp名称的数据。

将数据本地inpath'/home/data/download/sample.csv'加载到表slave_table中
从slave_table中选择*

最佳答案

您可以这样:

1.创建一个表来保存来自csv的46个cols:

CREATE EXTERNAL TABLE TABLENAME                                                 
(COLS)                                               
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'                                                       
WITH SERDEPROPERTIES ("separatorChar"=",", "quoteChar" = '~', "escapeChar" = "Δ", "skip.header.line.count"="1")    
STORED AS TEXTFILE 

请根据需要修改serdeproperties!

2.使用以下插入内容将这个新创建的表插入到56 cols表中:
Insert into TABLE_WITH_56_COLS (name the 46 cols that you want to populate)
select 46 cols from TABLE_WITH_46_COLS;

希望这对您有所帮助!

关于apache-spark - 我有56列的表格,想加载46列的数据,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57163297/

相关文章:

amazon-web-services - Elasticsearch 以使用Spark Submit将列值映射为ID

apache-spark - 如何对 CSV 文件中的更新行运行流式查询?

windows - 运行 MapReduce 作业时出错 : not a valid Inet address

mysql - 配置单元 : finding items that customers bought together from transactions

sql - 如何知道我使用的是哪个版本的 Hive?

scala - 如何使用基于案例类的数据集解析 CSV?

hadoop - Hadoop上的solr集成

hadoop - hadoop 1.0.3包括哪个版本的hdfs?

hadoop - Hive 中区分大小写的列名称

apache-spark - Parquet 和 Spark 中的分区策略