我正在使用此代码将 Hive 查询的结果写入指定文件:
INSERT OVERWRITE DIRECTORY '/user/test.user/test.csv'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '"' STORED AS TEXTFILE
SELECT
...
我不希望文件名是 test.csv
但是 unix 时间戳,即 1517213651.csv
或类似的东西。
我知道我不能使用 concat
函数来操作文件名,但这是我所能得到的。
如何将查询执行时刻的时间戳作为输出的文件名?
编辑:我们正在使用 Cloudera。
最佳答案
另一种选择是将 Hive 插入到 Shell 脚本中。在脚本中定义日期变量,然后使用日期变量定义输出文件。
TIMESTAMP_VAR=日期 +"%Y-%m-%d-%H-%M-%S"
FILENAME_VAR=/user/test/${TIMESTAMP_VAR}.csv
您可以通过多种方式操纵时间戳布局。
关于hadoop - 如何使用当前时间戳作为 Hive 输出的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497042/