Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按表达式或模板划分的配置单元分区_Java_Templates_Hadoop_Hive_Expression - Fatal编程技术网

Java 按表达式或模板划分的配置单元分区

Java 按表达式或模板划分的配置单元分区,java,templates,hadoop,hive,expression,Java,Templates,Hadoop,Hive,Expression,我发现了一个hive ql脚本,如下所示: 更改表格dwd.o\U p\U数据报告 如果存在分区,则删除分区\u dt='${date0,0,-1:yyyyMMdd}'; 插入覆盖表dwd.o\u p\u data\u报告分区分区\u dt='${date0,0,-1:yyyyMMdd}' -不变 选择 dwd.id ,dwd.title ,dwd.desc ,dwd.source ,dwd.source\u url ,dwd.download_url ,dwd.cloud\u url ,dwd

我发现了一个hive ql脚本,如下所示:

更改表格dwd.o\U p\U数据报告 如果存在分区,则删除分区\u dt='${date0,0,-1:yyyyMMdd}'; 插入覆盖表dwd.o\u p\u data\u报告分区分区\u dt='${date0,0,-1:yyyyMMdd}' -不变 选择 dwd.id ,dwd.title ,dwd.desc ,dwd.source ,dwd.source\u url ,dwd.download_url ,dwd.cloud\u url ,dwd.publish_日期 ,dwd.created_at ,dwd.updated_于 ,dwd.last_在 ,dwd.size ,dwd.cate ,dwd.作者 ,dwd.site ,dwd.page_num ,dwd 从…起 从dwd.o_p_data_报告中选择*,其中分区_dt='${date0,0,-2:yyyyMMdd}'dwd 左连接 从ods.o_p_data_报告中选择*,其中分区_dt='${date0,0,-1:yyyyMMdd}'ods 在dwd.id=ods.id上 其中ods.id为null 还有一个不寻常的地方,${date0,0,-1:yyyyMMdd}看起来像一个表达式,它在执行整个查询脚本之前会产生一些特定的值

该脚本在服务器上运行良好,分区_dt类似于20200115。 然而,在我自己的计算机上直接在HiveShell中执行它会失败,因为在这种情况下分区只会生成$

据我所知,分区_dt='${date0,0,-1:yyyyMMdd}'是:

不是配置单元函数调用,因为 不是配置单元变量,因为在第一行没有设置变量,并且格式错误,即${foobar},而不是${foobar} 不是自定义项,因为没有自定义项导入 不是动态分区,因为在服务器上使用诸如date_add之类的配置单元datetime函数进行动态分区会失败,但使用此函数会成功。
那么什么是${date0,0,-1:yyyyMMdd}?

检查脚本是如何执行的。例如,qubole可以使用一些宏。也许是其他工具在做什么substitution@leftjoin是的,现在我相信这是某种宏,但我不知道它到底是什么。