Ich will nicht eine Textdatei lesen, mag ich die Aktion über einen bestehenden Datenrahmen hatpyspark Split csv mit Leerzeichen in string - jupyter Notebook
mein Datenrahmen Text nur eine Spalte durchzuführen, wie eine Datei, "tabSeparator".
Es ist eine strukturierte Datei, mit 3 Spalten, Separator aRegister sind. Bei die Spalte hat einen eingebetteten Registerkarte, wird es in doppelten Anführungszeichen ("xxx xx"
)
Beispiel:
-------------------------
col_0
-------------------------
c11 c12 c13
c21 c22 c23
"c 31" "c 32" c33
Ich bin mit diesem regulären Ausdruck: I bin mit pyspark mit Jupyter Notebook
myre = '([\\t ]?(\\".*?\\"|[^\\t ]+))'
df = textDF.withColumn("tmp", split(col("_c0"), myre))\
.select(\
col("tmp").getItem(0).alias("col_1"),\
col("tmp").getItem(1).alias("col_2"),\
col("tmp").getItem(2).alias("col_3")
)
Nicht sicher, ob das Problem mit dem regulären Ausdruck oder meine Art und Weise ist, um die Datei zu analysieren, aber ich kann keinen neuen Datenrahmen mit den drei Säulen analysiert, resultierenden auf erstellen:
-------------------
|col_1|col_2|col_3|
------+-----+------
| c11 | c12 | c13 |
| c21 | c22 | c23 |
| c 31| c 32| c 33|
-------------------
Ich habe bereits einen Datenrahmen mit nur einer Spalte! Die Frage war, wie man es analysiert und 3 Spalten erstellt. Sie können davon ausgehen, dass die Registerkarte das einzige Trennzeichen ist. Ich möchte die Datei nicht wie vorgeschlagen lesen, weil sie nicht existiert. –
Danke für den Downvote, versuche nur zu helfen :) Wenn Sie den letzten Teil lesen, können Sie sehen, dass es eine Option für die Verwendung einer RDD und eine einfache Aufteilung nach Tab gibt, aber Sie können ein SerDe für die Anführungszeichen verwenden. – xmorera