Apache Pig转义列名称

时间:2016-03-29 07:13:21

标签: apache-pig

我正在Parquet中阅读PIG个日志。日志架构包含嵌套在字段FULL下的字段USER。由于FULL是Pig中的关键字,因此无法加载文件。 Pig正在给出编译时错误。没有办法逃脱这样的字段名称。更改架构中的列名真的不利。这是我用来加载

user_parquet = LOAD 'test' USING org.apache.parquet.pig.ParquetLoader();
user_normalized = FOREACH user_parquet GENERATE ..... USER.FULL as user_full ...

我尝试使用\, ``, ''进行转义,但没有一个有效!

1 个答案:

答案 0 :(得分:1)

基本上我通过使用字段编号而不是字段名称引用字段来解决问题: -

user_parquet = LOAD 'test' USING org.apache.parquet.pig.ParquetLoader();
user_normalized = FOREACH user_parquet GENERATE ..... USER.$0 as user_full ...

Pig,与任何其他语言一样,如果用作变量名,则无法转义关键字。