Spark: создать CSV-файл (необходимо использовать scala и датафрейм) - PullRequest
0 голосов
/ 17 февраля 2020

Я учу scala и dataframe недавно, и у меня возникла проблема. Это о dataframe вещах. Это должно быть решено с использованием Scala и Dataframe, но НЕ SparkSQL.

Задача:

  1. Создайте файл csv с 4 столбцами (человек, класс, предмет, оценка) для школы и поместите несколько случайные данные в CSV, каждый человек должен иметь "Maths", "Engli sh", "Art" и некоторые другие предметы, по крайней мере, есть 3 класса.

  2. Напишите программу Spark для:

    • чтения файла CSV

    • показать полную таблицу данных

    • показать, сколько человек в классе

    • показать человека и его балл с наибольшим количеством баллов по математике

Я пытался решить его и погуглил, но я пришел к выводу об использовании SQL для его решения, а также SQL - первое решение, данное Google.

Я действительно не знаю, как это сделать с помощью Spark и Dataframe, но НЕ Spark SQL, хотя в руководстве говорилось, что это очень простой вопрос :(

Может кто-нибудь помочь мне с это, как написать пример для меня или дать мне пример? Большое спасибо. Я буду очень признателен.

1 Ответ

0 голосов
/ 17 февраля 2020

Пример CSV-файла:

+-------+-------+---------+-------+   
| name  | class | subject | marks |
+-------+-------+---------+-------+
| ab    | 12    | Maths   | 72    |
+-------+-------+---------+-------+
| abc   | 12    | Maths   | 88    |
+-------+-------+---------+-------+
| abcd  | 11    | Arts    | 92    |
+-------+-------+---------+-------+
| abcde | 12    | English | 88    |
+-------+-------+---------+-------+
| bc    | 11    | Maths   | 99    |
+-------+-------+---------+-------+
| bcd   | 12    | English | 55    |
+-------+-------+---------+-------+
| bcde  | 11    | English | 77    |
+-------+-------+---------+-------+
| axax  | 10    | Maths   | 83    |
+-------+-------+---------+-------+
| amam  | 10    | English | 65    |
+-------+-------+---------+-------+
| arar  | 10    | Arts    | 66    |
+-------+-------+---------+-------+

  1. Чтение CSV-файла:
val df = spark.read.option("inferSchema","true").option("header","true").csv(filePath)

Показать фрейм данных:
df.show()

Показать, сколько человек в классе:
df.groupBy("class").count.show

Показать человек и его оценка с наивысшей оценкой по математике: df.filter(col("subject")==="Maths").orderBy(desc("marks")).limit(1).show
Более того, для последнего вопроса мы также можем отфильтровать класс.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...