如何使用新列作为文件名和文件夹名将数据从文件夹导入到 Hive?

How to import data from folder to Hive with new columns as file's name and folder's name?

我有这样的数据输入:

csv 文件的结构是:

x,y
0.0,0.0
18.6,-11.1
36.1,-21.9
53.7,-32.6
70.1,-42.8
86.5,-52.6

我想将此文件夹中的所有文件加载到 Hive table,例如:

id, x, y, file_name, folder_name
1, 0.0, 0.0, 1.csv, driver_1
...

我该怎么做? 谁能帮帮我?

Hive 有一个名为 INPUT__FILE__NAMEvirtual column,它包含包含记录的输入文件的完整路径。然后使用 REGEXP_EXTRACT 我们可以提取出父目录和文件名:

SELECT
    x
  , y
  , REGEXP_EXTRACT(INPUT__FILE__NAME, '.*/(.*)/(.*)', 2) AS file_name
  , REGEXP_EXTRACT(INPUT__FILE__NAME, '.*/(.*)/(.*)', 1) AS folder_name
FROM
    table
;