Chu*_*ins 8 hadoop apache-spark pyspark
我有以下数据集,它包含一些空值,需要使用spark中的fillna替换空值.
数据帧:
df = spark.read.format("com.databricks.spark.csv").option("header??","true").load("/sam??ple.csv")
>>> df.printSchema();
root
|-- Age: string (nullable = true)
|-- Height: string (nullable = true)
|-- Name: string (nullable = true)
>>> df.show()
+---+------+-----+
|Age|Height| Name|
+---+------+-----+
| 10| 80|Alice|
| 5| null| Bob|
| 50| null| Tom|
| 50| null| null|
+---+------+-----+
>>> df.na.fill(10).show()
Run Code Online (Sandbox Code Playgroud)
当我给出na值时,它不会改变同样的数据帧再次出现.
+---+------+-----+
|Age|Height| Name|
+---+------+-----+
| 10| 80|Alice|
| 5| null| Bob|
| 50| null| Tom|
| 50| null| null|
+---+------+-----+
Run Code Online (Sandbox Code Playgroud)
尝试创建一个新的数据帧并将填充值存储在数据框中,但结果显示为未更改.
>>> df2 = df.na.fill(10)
Run Code Online (Sandbox Code Playgroud)
如何替换空值?请通过填写na给我可能的方法.提前致谢.
Mar*_*usz 14
您的Height列似乎不是数字.当您调用df.na.fill(10)spark替换时,只替换具有匹配类型的列的空值10,这些列是数字列.
如果Height列需要是字符串,您可以尝试df.na.fill('10').show(),否则转换IntegerType()为必需.
小智 9
如果您愿意,您还可以为每列提供一个特定的默认值。
df.na.fill({'Height': '10', 'Name': 'Bob'})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15385 次 |
| 最近记录: |