Сначала вам нужно будет загрузить данные в столбец string
, а затем немного поиграть, применив логи c для идентификации типов. Вот пример того, как вы могли бы начать, отличая текст от цифр c столбцов. Я думаю, должно быть легко определить, является ли число плавающим или целым, и т. Д. c.
df = spark.createDataFrame([
(1, "a"),
(2, "123"),
(3, "22.12"),
(4, "c"),
(5, "True")
], ("ID","mixed_data"))
from pyspark.sql import functions as F
casted = df.select("ID", "mixed_data",F.when(F.col("mixed_data").cast('float').isNull(), "text").otherwise("some kind of number").alias("guessed_type"))
+---+----------+-------------------+
| ID|mixed_data| guessed_type|
+---+----------+-------------------+
| 1| a| text|
| 2| 123|some kind of number|
| 3| 22.12|some kind of number|
| 4| c| text|
| 5| True| text|
+---+----------+-------------------+