Hier ist, wie Spaltennamen hinzufügen Datenrahmen mit:
Angenommen Ihre csv hat das Trennzeichen ‚‘. Bereiten Sie die Daten wie folgt, bevor es zu Datenrahmen übertragen:
f = sc.textFile("s3://test/abc.csv")
data_rdd = f.map(lambda line: [x for x in line.split(',')])
Angenommen, die Daten 3 Spalten:
data_rdd.take(1)
[[u'1.2', u'red', u'55.6']]
Jetzt können Sie die Spaltennamen angeben, wenn diese RDD zu Datenrahmen übertragen toDF()
mit:
df_withcol = data_rdd.toDF(['height','color','width'])
df_withcol.printSchema()
root
|-- height: string (nullable = true)
|-- color: string (nullable = true)
|-- width: string (nullable = true)
Wenn Sie keine Spaltennamen angeben, erhalten Sie einen Datenrahmen mit Standardspaltennamen ‚_1‘, ‚_2‘, ...:
df_default = data_rdd.toDF()
df_default.printSchema()
root
|-- _1: string (nullable = true)
|-- _2: string (nullable = true)
|-- _3: string (nullable = true)
_Ist DataFrame hier? _ - Ja, ist es. Oder 'namedtuple', wenn Sie viel einfachen Python-Code verwenden möchten. – zero323
DataFrame ist eine Kombination aus Schema und RDD. Gerade jetzt Variable "f" in Ihrem Code ist eine RDD. Wenn Sie also ein Schema hinzufügen, erhalten Sie DataFrame. Dann wird es Kopf- und Spaltennamen haben. Stellen Sie außerdem fest, dass Sie diese Daten als Tabelle registrieren und SQL darüber ausführen können. –