我们如何使用 URL 将数据加载到配置单元中
Posted
技术标签:
【中文标题】我们如何使用 URL 将数据加载到配置单元中【英文标题】:How Can we load data into hive using URL 【发布时间】:2019-05-30 04:01:25 【问题描述】:我在 hive 中创建了一个表,我需要将 csv 数据加载到 hive 表中, 但数据在 github 中(我已经下载并测试它工作正常)我需要直接从 URL 加载数据是否可以从 URL 将数据加载到配置单元中
这样的东西可以工作
LOAD DATA INPATH 'https://github.com/xx/stock-prices.csv' INTO TABLE
stocks;
【问题讨论】:
【参考方案1】:可以使用以下命令将平面文件中的数据加载到 Hive 中。
来自Apache Hive Wiki:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)
如果指定了关键字 LOCAL,Hive 会在 本地文件系统 中查找文件路径并从那里加载。如果没有指定关键字 LOCAL,Hive 会在 HDFS 文件系统 中查找文件路径并在那里加载数据。
您可以为 HDFS 文件以及本地文件指定完整的 URI。
例子:
file:///user/data/project/datafolder (Local Path)
hdfs://namenode:10001/user/data/project/datafolder (HDFS path)
这意味着无法从 https 直接将数据加载到 hive 中。所以你必须先下载数据并加载到 hive 中。
这不是解决方案,而是正确答案。
【讨论】:
以上是关于我们如何使用 URL 将数据加载到配置单元中的主要内容,如果未能解决你的问题,请参考以下文章
如何在不删除源文件的情况下将数据从 HDFS 加载到配置单元?
如何在没有使用“ROW FORMAT DELIMITER”创建配置单元表的情况下将“|”分隔文件加载到配置单元中