我是PySpark3.0的新手,我有一个家庭作业,我需要修改字符串( geolocation
)元组数字数据类型( geolocation1
).
这是我的密码:
from pyspark.sql.functions import *
from pyspark.sql.types import *
df = df2.withColumn('geolocation1', col('geolocation').cast('double'))
输出:
| 地理位置 | 地理位置1|
|
4条答案
按热度按时间cngwdvgl1#
如果有这样的字符串,可以去掉括号,用逗号分隔,然后转换为
array<double>
:vaqhlq812#
在回答这个问题之前,我想提出一些建议
首先,你需要了解什么是双重类型。在这里,您盲目地将包含非数字字符的字符串转换为数字格式。因此,内部spark将抛出一个异常,该异常将被捕获,null将作为输出填充。
从field的名字来看,这是一个地理位置,它是经纬度的组合。所以我假设给你这个作业的人需要这两个值作为新的列。如果我的假设是正确的,下面是实现它的方法之一。
rjzwgtxy3#
--|
hjzp0vay4#
我做错什么了?