TSchiefer / IE_BigData_Project

0 stars 0 forks source link

Vorschlag für Präsi Struktur #1

Open Eckeau opened 5 years ago

Eckeau commented 5 years ago

Struktur: 1) Daten erklären (Visualisierung) 2) Vergleich CSV und Parquet a. Als CSV einlesen, union machen und als CSV speichern b. Neue Tabellen jeweils als Parquet speichern c. Join machen und Execution Pläne anschauen 3) Map / Reduce Verfahren a. Worüber?

Eckeau commented 5 years ago

@TSchiefer Ich denke ich habe die Lösung für das Datum-Problem. Ich stelle nachher das notebook drauf. Hier der Code:

import datetime from pyspark import sql

def replace_date (zeile): datum = zeile["date"] z = zeile.asDict() z['date'] = datum.replace(hour=0, minute=0) return sql.types.Row(**z)

airRDD = air_df.rdd airRDD_new = airRDD.map(lambda x: replace_date(x)) air_df_new = spark.createDataFrame(airRDD_new) air_df_new.createOrReplaceTempView("airRDD_new")

TSchiefer commented 5 years ago

Ich habe gerade auch ein Notebook gepushed, das erweiterte von Euch beiden. Es ist sehr langsam, z.B. braucht der Code-Chunk:

from pyspark.sql import SQLContext
sqlCtx = SQLContext(sc)
air_df_enhanced = sqlCtx.createDataFrame(air_df_pd)

ca. 45 min! Ich werde mal Deine Lösung ausprobieren, @Eckeau

Ich habe auch eine kleine SQL-Abfrage bei mir drin, wo hoffentlich die nach Tag und Station gruppierten Schadstoffwerte rauskommen.

Eckeau commented 5 years ago

@TSchiefer

Dauert zum Teil schon lange, wobei ich immer unter 5 Minuten war.

Die Gruppierung müsste dann wohl so gehen: air_df_grouped = air_df_new.groupBy('date').agg({'CO': 'mean', 'EBE': 'mean', ...})

Eckeau commented 5 years ago

Neues Notebook Madrid liegt bereit

Eckeau commented 5 years ago

Achtung: es bildet noch nicht alle Mittelwerte für alle Attribute. Nur mal zwei exemplarisch.

TSchiefer commented 5 years ago

Klingt gut, danke!

Wollen wir hier über alle Stationen mitteln oder pro Tag und pro Station mitteln? Ich meine nur, weil manche der Stationen z.B. an sehr verkehrsreichen Strassen liegen könnten und andere an ruhigeren Gegenden. Dann würde es mehr Sinn machen, die Stationen getrennt zu betrachten.

Eckeau commented 5 years ago

In meinem Beispiel habe ich über die Tage hinweg gemittelt. Stationen ignoriert das dann. Würde schon mehr Sinn machen, nach Stationen getrennt zu analysieren. Bin jetzt zu müde, die Reihenfolge der Joins und Group-Operationen zu verstehen ;-)

Eckeau commented 5 years ago

Hallo zusammen. Ich werde heute Abend noch eine Version hochladen, bei der die Files erst nach der Datenbereinigung geschrieben werden. Sonst können wir keine Performance Analysen machen.

Eckeau commented 5 years ago

Eine Idee noch am Rande: wir könnten theoretisch auch die Wetterdaten auf stündlich erweitern in dem wir die Zwischenwerte approximieren. Z.B. könnten wir für Min und Max Temperatur jeweils eine Uhrzeit festlegen und einen linearen Verlauf dazwischen annehmen. Dann hätten wir nochmal einiges grössere Datenmengen.

Eckeau commented 5 years ago

Neue Version der Präsentation mit meinem Teil liegt nun bereit.

TSchiefer commented 5 years ago

Ich finde die Präsentation jetzt schon super!

Eine Sache vermisse ich aber noch: wir haben kein Bild, in dem Daten der beiden verschiedenen Datensätze gemeinsam geplottet werden mit drinnen. Wenn es ok ist, würde ich das Bild mit der normierten Temperatur und den zwei Gasen sowie das mit der Korrelationsmatrix mit reinbringen, so als Proof of Concept. Ich würde das dann auf Folie 7 machen, anstelle der "Datendarstellung Luftqualität". Ich lade es einfach mal hoch, wenn es fertig ist, und dann können wir ja noch immer gemeinsam entscheiden.