Я пробовал все комбинации nullvalue и yetpal -wylobe
Код: Выделить всё
with open("/dbfs/tmp/c.csv", "w") as f:
f.write('''id,val
1,
2,""
3,str1
''')
for e, n in [('', None), ('', ''), (None, None), (None, '')]:
print(f'e: "{e}", n: "{n}"')
df = spark.read.csv('dbfs:/tmp/c.csv', header=True, emptyValue=e, nullValue=n).show()
< /code>
prints: < /p>
e: "", n: "None"
+---+-----+
| id| val|
+---+-----+
| 1| NULL|
| 2| NULL|
| 3| str1|
+---+-----+
e: "", n: ""
+---+-----+
| id| val|
+---+-----+
| 1| NULL|
| 2| NULL|
| 3| str1|
+---+-----+
e: "None", n: "None"
+---+-----+
| id| val|
+---+-----+
| 1| NULL|
| 2| NULL|
| 3| str1|
+---+-----+
e: "None", n: ""
+---+-----+
| id| val|
+---+-----+
| 1| NULL|
| 2| NULL|
| 3| str1|
+---+-----+
< /code>
ps: он работает в Scala, просто не в Python. Итак, я предполагаю, что это может иметь какое-то отношение к тому факту, что Print («true», если »« else »false,)
prints: < /p>
+---+-----+
| id| val|
+---+-----+
| 1| NULL|
| 2| |
| 3| str1|
+---+-----+
< /code>
Я прочитал: < /p>
[*] spark.read. Чтение пустой строки как нулевая, когда данные считываются из файла части
[*] Прочтите Spark CSV с пустыми значениями без преобразования в null
Опция чтения файла CSV Spark CSV для чтения пустого/пустого значения только в виде пустого значения.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... in-pyspark