2015-09-14 4 views
2

У меня есть таблица с различными записями в столбцах (но я не знаю, все из них)FLiNK подсчета строк таблицы с одной и той же записи

table:  
column1 | column2 
    x1 | y1 
    x1 | y2 
    x2 | y2 
    x3 | y1 
    x3 | y2 

Теперь я хочу получить список или словарь, где все записей первого столбца Количество:

dict = (x1:2, x2:1, x3:2) 

Я пробовал:

table = env.readCsvFile(tablepath).as('column1, 'column2) 
var content = table.select('column1) 
content.count() 

И я пытался использовать слово-граф пример link, но для этого нужен массив строк? так

Wordcount(content) or Wordcount(content.toString()) 

не работает.

ответ

2

Если вы хотите иметь счетчик для каждого значения в column1 вам нужно сгруппировать по column1 и посчитайте:

table = env.readCsvFile(tablepath).as('column1, 'column2) 
var content = table.groupBy('column1').select('column1.count) 

вход в WordCount указывает файл ввода и вывода или данных (он ожидает две строки --- или нет, чтобы использовать данные примера в памяти и распечатать результат до stdout). Параметры, а не данные, подлежащие обработке, хотя.

+0

Я попробовал и получил это сообщение об ошибке: Dangling GroupBy. Вы забыли инструкцию SELECT –

+0

Я не узнал, что вы используете TableAPI ... Я просто обновил свой ответ. –

+0

Я забыл упомянуть об этом. спасибо за ответ, теперь он работает –

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