Apache pig 如何逃离猪的角色?
我有一个像这样的txt文件Apache pig 如何逃离猪的角色?,apache-pig,Apache Pig,我有一个像这样的txt文件 PersonA , "3115,Clark Street Buford, GA 30518" PersonB , "1656, Ashley Court Ridgefield, CT 06877" PersonA , "3115,Clark Street Buford, GA 30518" PersonB , "1656, Ashley Court Ridgefield, CT 06877" 我需要将这些数据加载到pig中(分隔符应该是“,”)。
PersonA , "3115,Clark Street Buford, GA 30518"
PersonB , "1656, Ashley Court Ridgefield, CT 06877"
PersonA , "3115,Clark Street Buford, GA 30518"
PersonB , "1656, Ashley Court Ridgefield, CT 06877"
我需要将这些数据加载到pig中(分隔符应该是“,”)。
如何做到这一点?如何检查地址中的逗号
输出应该是这样的
PersonA , "3115,Clark Street Buford, GA 30518"
PersonB , "1656, Ashley Court Ridgefield, CT 06877"
PersonA , "3115,Clark Street Buford, GA 30518"
PersonB , "1656, Ashley Court Ridgefield, CT 06877"
但生产的产量是有限的
PersonA , "3115
PersonB , "1656
为此,必须使用正则表达式命令ie..REGEX\u EXTRACT\u ALL() 代码:
a = LOAD '<path_Of_File>' as line;
b = FOREACH a GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'(.*)[,](.*)')) AS (f1,f2);
dump b;
a=将“”加载为行;
b=每个a生成展平(REGEX_EXTRACT_ALL(行,(.*)[,](.*)))作为(f1,f2);
垃圾场b;
为此,必须使用正则表达式命令ie..REGEX\u EXTRACT\u ALL()
代码:
a = LOAD '<path_Of_File>' as line;
b = FOREACH a GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'(.*)[,](.*)')) AS (f1,f2);
dump b;
a=将“”加载为行;
b=每个a生成展平(REGEX_EXTRACT_ALL(行,(.*)[,](.*)))作为(f1,f2);
垃圾场b;
为什么分隔符应该是“,”?看起来输入和输出是相同的。在这种情况下,为什么要使用分隔符?您不能将输入文件中的行作为一行加载到一个字段中:chararray?虽然可能有一些技巧可以解决您的问题,但老实说,最好的解决方案是将输入文件更改为使用不同的分隔符,例如管道或冒号。为什么分隔符应该是“,”?看起来输入和输出是相同的。在这种情况下,为什么要使用分隔符?您不能将输入文件中的行作为一行加载到一个字段中:chararray?虽然可能有一些技巧可以解决您的问题,但老实说,最好的解决方案是将输入文件更改为使用不同的分隔符,如管道或冒号。