簡體   English   中英

Spark:創建一個csv文件(必須使用scala和dataframe)

[英]Spark: create a csv file(must use scala and dataframe)

我最近在學習scaladataframe ,但遇到了一個問題。 這是關於dataframe事情。 它必須使用ScalaDataframe解決,而不是SparkSQL

問題:

  1. 為學校創建一個包含 4 列(人、班級、科目、分數)的csv文件,並將一些隨機數據放入 csv,每個人必須有“數學”、“英語”、“藝術”以及其他一些科目,以及至少有3個班級。

  2. 編寫一個 Spark 程序來:

    • 讀取一個 csv 文件

    • 顯示完整的數據表

    • 顯示每班有多少人

    • 顯示“數學”中得分最高的人和他的分數

我試圖解決它並用谷歌搜索它,但我想到的是使用 SQL 來解決它,而且 SQL 是谷歌給出的第一個解決方案。

我真的不知道如何通過 Spark 和 Dataframe 而不是 SparkSQL 來做到這一點,盡管教程說這是一個非常簡單的問題:(

任何人都可以幫助我,比如為我寫一個例子或給我一個例子? 太感謝了。 我會很感激的。

示例 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)
  1. 顯示數據框:
    df.show()

  2. 顯示每班人數:
    df.groupBy("class").count.show

  3. 顯示“數學”中得分最高的人和他的分數: df.filter(col("subject")==="Maths").orderBy(desc("marks")).limit(1).show
    此外,對於最后一個問題,我們也可以過濾掉類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM