我使用此代码将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。答案 0 :(得分:2)
另一个选择是将Hive插入放在Shell脚本中。在脚本中定义Date变量,然后使用Date Variable定义输出文件。
TIMESTAMP_VAR = date +"%Y-%m-%d-%H-%M-%S"
FILENAME_VAR = /用户/测试/ $ {TIMESTAMP_VAR}的.csv
您可以通过多种方式操作时间戳布局。
答案 1 :(得分:1)
您必须在文件路径中添加TalendDate.getDate("CCYYMMDD")
。
"/File1/Output_File_" + TalendDate.getDate("CCYYMMDD") + ".csv"