【问题标题】:Loading data with multiple delimiter (only in some cases) in a particular data file using apache-pig使用 apache-pig 在特定数据文件中加载具有多个分隔符的数据(仅在某些情况下)
【发布时间】:2018-10-22 21:00:16
【问题描述】:
150060275,NON-CRIMINAL,LOST PROPERTY,Monday,01/19/2015,14:00,MISSION,NONE,18TH ST / VALENCIA ST,-122.42158168137,37.7617007179518,"(37.7617007179518, -122.42158168137)",15006027571000
150098210,ROBBERY,"ROBBERY, BODILY FORCE",Sunday,02/01/2015,15:45,TENDERLOIN,NONE,300 Block of LEAVENWORTH ST,-122.414406029855,37.7841907151119,"(37.7841907151119, -122.414406029855)",15009821003074

在第二行中,第三个字段有一个“,”,其间不应作为分隔符。我该如何解决这个问题?

如果我使用 STRPLIT(),那么它适用于第 2 行,但会为第 1 行生成错误的结果。

【问题讨论】:

    标签: bigdata apache-pig


    【解决方案1】:

    将其加载到单个字段中,将逗号和空格替换为 |然后在每一行上使用 strsplit。

    A = LOAD 'data.txt' USING TextLoader() AS (line:chararray);
    B = FOREACH A GENERATE REPLACE(line,', ','|');
    C = FOREACH B GENERATE STRSPLIT(B.$0,',',13);-- Assuming there are 13 fields.
    

    或者,您可以使用CSVExcelStoragePiggyBank

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多