繁体   English   中英

Apache Spark 可视化

[英]Apache Spark visualization

我是 Apache Spark 的新手,目前正在尝试在 Apache Spark/Databricks 中学习可视化。 如果我有以下 csv 数据集;

病人.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. 如何生成条形图可视化以显示数据集中不同疾病类型的分布。
  2. 如何生成条形图可视化以显示每个封面类型的平均 Post_Code,并带有封面类型的字符串标签。
  3. 如何从 Infected_Date(以日期表示(自 1970 年 1 月 1 日 UTC 以来的 unix 秒))中提取年份 (YYYY),按年份和平均年龄的降序对结果进行排序。

要使用 Databricks 本地显示图表,您需要在数据框上使用显示功能。 首先,我们可以通过聚合疾病类型的数据框来完成您想要的。

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

然后您可以使用图表选项来构建条形图,您可以对第二个问题执行相同的操作,但不要使用 .count() 使用 .avg("Post_Code")

对于第三个问题,您需要在将时间戳转换为日期和 orderBy 之后使用 year 函数。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM