Я новичок в pyspark, и у меня есть набор данных, который я загружаю из CSV (в Glue). Есть один столбец code
, где есть string
и long
.
df = glueContext.create_dynamic_frame.from_catalog(database="db", table_name="data_csv")
df.printSchema()
root
|-- code: choice
| |-- long
| |-- string
, и кажется, что pyspark видит пропущенные значения как string
. Я нашел это, сгладив столбец как Как развернуть вложенный столбец Struct в несколько столбцов? .
df_flattened.show()
+---------+------+
| long|string|
+---------+------+
| 9965213| null|
|300870254| null|
| 5607653| null|
| 5798154| null|
| 389954| null|
| 572| null|
| 951091| null|
Я действительно хочу, чтобы весь столбец был string
, но я не смог найти как сделать значения null
(выше) действительными null
значения, которые отображаются при использовании isnan
. Также, когда я пытаюсь преобразовать весь столбец в string
, и обнаруживаю, что ни одна из строк не является == 'null'
.
df = (df
.toDF()
.withColumn('code', f.col('code').cast("string"))
)
df.select('code').where(f.col('code') == 'null').count()
0
Какого типа эти значения null
и как их преобразовать в «истинные» null
значения (которые распознаются isNull()
)?