Pyspark withColumn的Spark(使用python)问题
我正在学习使用python,在我的项目中,我特别需要使用spark。 (我对其他编程语言[C++、Matlab、R]很有信心) 我想读取一个csv文件,作为第一步,我想将列(字符串)的内容转换为正确的类型(分别是date、int和double) 下面是我写的Pyspark withColumn的Spark(使用python)问题,pyspark,Pyspark,我正在学习使用python,在我的项目中,我特别需要使用spark。 (我对其他编程语言[C++、Matlab、R]很有信心) 我想读取一个csv文件,作为第一步,我想将列(字符串)的内容转换为正确的类型(分别是date、int和double) 下面是我写的 from pyspark.sql import SparkSession from pyspark.sql.functions import udf from pyspark.sql.types import DoubleType from
from pyspark.sql import SparkSession
from pyspark.sql.functions import udf
from pyspark.sql.types import DoubleType
from pyspark.sql.types import IntegerType
from pyspark.sql.types import DataType
spark = SparkSession.builder.appName("my_spark").getOrCreate()
# DATA PREPROCESSING
A2A_av1=spark.read.format('csv').options(header='true').load('../../Data/A2A_avail.csv')
A2A_av1.printSchema()
A2A_av1.withColumn("SUM_AVAILABLE_", A2A_av1["SUM_AVAILABLE_"].cast(DoubleType()))
A2A_av1.printSchema()
,没有任何变化。列SUM_AVAILBELS_uu仍然是一个字符串
你能告诉我我做错了什么吗?提前感谢Pyspark不像pandas那样提供就地编辑。因此,您必须分配结果才能使更改生效。Spark数据帧是不可变的。将代码更改为
A2A_av1=A2A_av1.withColumn("SUM_AVAILABLE_", A2A_av1["SUM_AVAILABLE_"].cast(DoubleType()))
这应该有用:-)