我正在努力做到这一点;
location/11.11
location/12.11
location/13.11
为了做到这一点,我尝试了很多事情,但都没有成功。现在我有一个udf hive函数,它返回s3表的位置,但是我面临一个错误;
parseexception行1:0无法识别“location”“datenow”(“location datenow()”)附近的输入;新异常(143@[])
这是我的配置单元脚本,我有两个外部表。
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();
2条答案
按热度按时间vd2z7a6w1#
LOCATION
接受字符串,而不是自定义项。语言手册有点不清楚,因为它只规定[LOCATION hdfs_path]
然后离开hdfs_path
未定义,但它只能是url位置路径、字符串。一般来说,UDF在ddl上下文中是不可接受的。使用所选的任何文本工具构建脚本并运行该脚本。
shstlldc2#
我就是这么做的,