Probleme beim Erstellen von zwei Datenrahmen und eine union
auf ihnen tun.Erstellen eines Spark-Datenrahmens
Dies funktioniert:
a = [{'letter':'a'}]
sqlContext.createDataFrame(a).collect()
b = [{'letter':'b'}]
sqlContext.createDataFrame(b).collect()
Aber wenn ich rdd = sc.union([a,b])
laufen, bekomme ich AttributeError: 'list' object has no attribute '_jrdd_deserializer'
Also dachte ich, ich brauche sc.parallelize()
zu tun. Ich bin mir nicht 100% sicher, was das bedeutet, auch nachdem ich die Dokumentation gelesen habe. Kann jemand diese Funktion auf hohem Niveau erklären?
Also habe ich:
a = sc.parallelize(['a'])
sqlContext.createDataFrame(a).collect()
aber ich habe noch einen Fehler, diesmal: TypeError: Can not infer schema for type: <type 'str'>
Ich versuche nur, all die Syntax zu verstehen und die Typen und Funktionen benötigt, um einfach zu erstellen 2 Datenrahmen und verbinden sie.
Danke, also sieht es so aus, als hätte ich 3 Dinge falsch gemacht: nicht den 'createDataFrame' einer Variablen zuzuweisen, mit der' collect() 'Methode und der 'union' Syntax. Oder ist die "sc.union" noch eine praktikable Methode? – simplycoding
'sc.union' ist immer noch eine gute Methode, wenn Sie mit RDDs arbeiten. Du könntest einfach diese 'sc.union ([sc.parallelize (a), sc.parallelize (b)]). Collect()' (beachte die 'sc.parallelize (...)') für ein '[{ 'Buchstabe': 'a'}, {'Buchstabe': 'b'}] 'Ausgabe. – TDrabas