【发布时间】:2018-03-13 10:28:35
【问题描述】:
我有一个如下所示的数据框:
+------------------------+----------+
|Postal code |PostalCode|
+------------------------+----------+
|Muxía |null |
|Fuensanta |null |
|Salobre |null |
|Bolulla |null |
|33004 |null |
|Santa Eulàlia de Ronçana|null |
|Cabañes de Esgueva |null |
|Vallarta de Bureba |null |
|Villaverde del Monte |null |
|Villaluenga del Rosario |null |
+------------------------+----------+
如果邮政编码列仅包含数字,我想创建一个仅存储数字邮政编码的新列。如果邮政编码列仅包含文本,则要创建一个名为“Municipality”的新列。
我尝试使用“isnan”作为我的理解,这将检查值是否不是数字,但这似乎不起作用。列类型应该是字符串才能工作吗?
到目前为止,我的尝试是:
> df2 = df.withColumn('PostalCode', when(isnan(df['Postal code']), df['Postal code'])
查看上面发布的数据框结果示例,您可以看到新列返回的所有值“Null”,以及邮政编码“33004”
任何想法将不胜感激
【问题讨论】:
-
df.withColumn("PostalCode", df.Postalcode.cast("int"))
标签: apache-spark pyspark