gpt4 book ai didi

hadoop - 配置单元将数据加载到HDFS中

转载 作者:行者123 更新时间:2023-12-02 22:00:47 25 4
gpt4 key购买 nike

我有每行100列以上的数据集。问题是如何使用Hive将选定的列加载到hdfs中。

例如:col1,col2,col3 ... col50,col51 .... col99,col100。我只需要加载选定的列col1,col2,col34和col99。
方法1:
1.加载所有列
2.并根据选定的列创建 View 。
方法1-缺点-我需要加载所有不必要的列,这将消耗hdfs中的更多内存,而且我需要编写大型查询以指定列
。任何其他最佳方法。

最佳答案

HiveHDFS数据之上提供表格 View 。如果您的数据在HDFS中,则可以在其上创建一个外部表以引用现有数据。您将需要在数据上放置一个架构。这是一项一次性的工作,然后您可以使用Hive的所有功能来探索和分析数据集。 Hive也支持 View 。

插图

示例数据文件:data.csv

1,col_1a,col1b
2,col_2a,col2b
3,col_3a,col3b
4,col_4a,col4b
5,col_5a,col5b
6,col_6a,col6b
7,col_7a,col7b

加载并验证HDFS中的数据
hadoop fs -mkdir /hive-data/mydata

hadoop fs -put data.csv /hive-data/mydata

hadoop fs -cat /hive-data/mydata/*
1,col_1a,col1b
2,col_2a,col2b
3,col_3a,col3b
4,col_4a,col4b
5,col_5a,col5b
6,col_6a,col6b
7,col_7a,col7b

default数据库的HDFS数据之上创建一个Hive表
CREATE EXTERNAL TABLE default.mydata
(
id int,
data_col1 string,
data_col2 string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 'hdfs:///hive-data/mydata';

查询Hive表
select * from default.mydata;
mydata.id mydata.data_col1 mydata.data_col2
1 col_1a col1b
2 col_2a col2b
3 col_3a col3b
4 col_4a col4b
5 col_5a col5b
6 col_6a col6b
7 col_7a col7b

关于hadoop - 配置单元将数据加载到HDFS中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50185439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com