Apache pig 如何逃离猪的角色?

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中(分隔符应该是“,”)。

我有一个像这样的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"
但生产的产量是有限的

  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?虽然可能有一些技巧可以解决您的问题,但老实说,最好的解决方案是将输入文件更改为使用不同的分隔符,如管道或冒号。