какие действия я могу выполнить в столбце - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть таблица

DEST_COUNTRY_NAME   ORIGIN_COUNTRY_NAME count
United States   Romania 15
United States   Croatia 1
United States   Ireland 344

Я преобразовал вышеупомянутое в DataFrame

val flightData2015 = spark
.read
.option("inferSchema", "true")//infers the input schema automatically from data
.option("header", "true")//uses the first line as names of columns.
.csv("/data/flight-data/csv/2015-summary.csv");

Я могу получить только один столбец из DataFrame, используя colfunction

scala> data.col("count");
res70: org.apache.spark.sql.Column = count

Но я замечаю, что никаких действий для столбца не указано.Могу ли я выполнить какие-либо действия с Column, например max, show и т. Д.

Я пытался запустить функцию max в столбце count, но все еще не вижулюбой результат.

scala> max(dataDS.col("count"));
res78: org.apache.spark.sql.Column = max(count)

Как выполнить действие на Column?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Вы можете просто взглянуть на ScalaDoc

. Также в Документах SparkSQL эти $"name" вещи являются Column объектами.

Итак, вы можете сделать flightData2015.select($"count" > 1).show(), и вы получите только две строки.

Если вы хотите найти максимум одного, то вам нужно выбрать его из DataFrame другим способом

Примерно так:

// TODO: import sql functions

flightData2015.select(max($"count"))
0 голосов
/ 08 февраля 2019

Никаких действий вообще.Столбец не является распределенной структурой данных и не привязан к конкретным данным.

Вместо этого столбцы - это выражения, которые должны оцениваться в определенном контексте Dataset, например select, filter или agg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...