Apache Spark визуализация - PullRequest
       5

Apache Spark визуализация

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

Я новичок в Apache Spark и сейчас пытаюсь освоить визуализацию в Apache Spark / Databricks. Если у меня есть следующие наборы данных csv:

Patient.csv

+---+---------+------+---+-----------------+-----------+------------+-------------+
| Id|Post_Code|Height|Age|Health_Cover_Type|Temperature|Disease_Type|Infected_Date|
+---+---------+------+---+-----------------+-----------+------------+-------------+
|  1|     2096|   131| 22|                5|         37|           4|    891717742|
|  2|     2090|   136| 18|                5|         36|           1|    881250949|
|  3|     2004|   120|  9|                2|         36|           2|    878887136|
|  4|     2185|   155| 41|                1|         36|           1|    896029926|
|  5|     2195|   145| 25|                5|         37|           1|    887100886|
|  6|     2079|   172| 52|                2|         37|           5|    871205766|
|  7|     2006|   176| 27|                1|         37|           3|    879487476|
|  8|     2605|   129| 15|                5|         36|           1|    876343336|
|  9|     2017|   145| 19|                5|         37|           4|    897281846|
| 10|     2112|   171| 47|                5|         38|           6|    882539696|
| 11|     2112|   102|  8|                5|         36|           5|    873648586|
| 12|     2086|   151| 11|                1|         35|           1|    894724066|
| 13|     2142|   148| 22|                2|         37|           1|    889446276|
| 14|     2009|   158| 57|                5|         38|           2|    887072826|
| 15|     2103|   167| 34|                1|         37|           3|    892094506|
| 16|     2095|   168| 37|                5|         36|           1|    893400966|
| 17|     2010|   156| 20|                3|         38|           5|    897313586|
| 18|     2117|   143| 17|                5|         36|           2|    875238076|
| 19|     2204|   155| 24|                4|         38|           6|    884159506|
| 20|     2103|   138| 15|                5|         37|           4|    886765356|
+---+---------+------+---+-----------------+-----------+------------+-------------+

И coverType.csv

+--------------+-----------------+
|cover_type_key| cover_type_label|
+--------------+-----------------+
|             1|           Single|
|             2|           Couple|
|             3|           Family|
|             4|       Concession|
|             5|          Disable|
+--------------+-----------------+

, которые мне удалось загрузить как DataFrames (Patient и coverType);

val PatientDF=spark.read
  .format("csv")
  .option("header","true")
  .option("inferSchema","true")
  .option("nullValue","NA")
  .option("timestampFormat","yyyy-MM-dd'T'HH:mm:ss")
  .option("mode","failfast")
  .option("path","/spark-data/Patient.csv")
  .load()

val coverTypeDF=spark.read
  .format("csv")
  .option("header","true")
  .option("inferSchema","true")
  .option("nullValue","NA")
  .option("timestampFormat","yyyy-MM-dd'T'HH:mm:ss")
  .option("mode","failfast")
  .option("path","/spark-data/covertype.csv")
  .load()
  1. Как создать визуализацию гистограммы, чтобы показать распределение различных типов Disease_Type в моем наборе данных.
  2. Как создать визуализацию гистограммы для показать среднее значение Post_Code для каждого типа обложки со строковыми метками для типа обложки.
  3. Как извлечь год (ГГГГ) из даты заражения (представленной в дате (unix секунд с 01.01.1970 UT *) 1022 *)) упорядочивание результата в порядке убывания года и среднего возраста.

1 Ответ

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

Для непосредственного отображения диаграмм с помощью блоков данных вам необходимо использовать функцию отображения на кадре данных. Во-первых, мы можем sh выполнить то, что вам нужно, агрегировав фрейм данных по типу заболевания.

display(PatientDF.groupBy(Disease_Type).count())

Затем вы можете использовать параметры построения диаграммы для построения гистограммы, вы можете сделать то же самое. для вашего второго вопроса, но вместо .count () используйте .avg ("Post_Code")

Для третьего вопроса вам нужно использовать функцию year после приведения временной метки к дате и orderBy.

from pyspark.sql.functions import *
display(PatientDF.select(year(to_timestamp("Infected_Date")).alias("year")).orderBy("year"))
...