2014-11-11 6 views
1

Я пытаюсь загрузить файл данных в свиноводстве латинице данных имеет 2 колонки, но есть текст отборочные во 2-й колонке и данных образца ниже:свинья латино - груз с текстом классификатором

DEVICE_ID,SUPPORTED_TECH 
a2334,"GSM900,GSM1500,GSM200" 
a54623,"GSM900,GSM1500" 
a86646,"GSM1500,GSM200" 

При попытке загрузки даты, как показано ниже, второй столбец не распознается как 1 колонке

deviceList = load 'deviceList.csv' Using PigStorage(',') as (DEVICE_ID:chararray, SUPPORTED_TECH:chararray); 

Как я могу определить текстовый спецификатор при загрузке набора данных?

+0

Каков ваш ожидаемый выход? –

ответ

1

Попробуйте это, дайте мне знать, если вам нужен другой формат вывода

input.txt

DEVICE_ID,SUPPORTED_TECH 
a2334,"GSM900,GSM1500,GSM200" 
a54623,"GSM900,GSM1500" 
a86646,"GSM1500,GSM200 

PigScript:

A = LOAD 'input.txt' AS line; 
deviceList = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'^(\\w+),(.*)$')) as (DEVICE_ID:chararray, SUPPORTED_TECH:chararray); 
DUMP deviceList; 

Выход:

(DEVICE_ID,SUPPORTED_TECH) 
(a2334,"GSM900,GSM1500,GSM200") 
(a54623,"GSM900,GSM1500") 
(a86646,"GSM1500,GSM200") 
+0

thnx для ответа это работает для 2 столбцов, но мой исходный файл имеет 625 столбцов вы можете что-либо рекомендовать без определения каждого столбца? – FIDIL

Смежные вопросы