我正在努力做到这一点;
location/11.11
location/12.11
location/13.11
为了做到这一点,我尝试了许多事情,但却无法实现。 现在我有一个Udf配置单元功能,它返回s3表的位置,但我面临一个错误;
ParseException行1:0无法识别'LOCATION'附近的输入 'datenow''('LOCATION datenow(); NoViableAltException(143 @ [])
这是我的hive脚本,我有两个外部表。
CREATE TEMPORARY FUNCTION datenow AS 'LocationUrlGenerator';
CREATE EXTERNAL TABLE IF NOT EXISTS s3( file Array<String>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY '\001' LINES TERMINATED BY '\n';
LOCATION datenow();
答案 0 :(得分:1)
LOCATION
接受字符串,而不是UDF。语言手册有点不清楚,因为它只指定[LOCATION hdfs_path]
并且hdfs_path
未定义,但它只能是一个URL位置路径,一个字符串。通常,在DDL上下文中不接受UDF。
使用任何选择的文本工具构建脚本并运行该脚本。
答案 1 :(得分:0)
我是这样管理的,
INSERT INTO TABLE S3
PARTITION(time)
SELECT func(json),from_unixtime(unix_timestamp(),'yyyy-MM-dd') AS time FROM tracksTable;