Dataframe PySpark创建带有浮点类型错误的数据帧

Dataframe PySpark创建带有浮点类型错误的数据帧,dataframe,pyspark,apache-spark-sql,pyspark-dataframes,Dataframe,Pyspark,Apache Spark Sql,Pyspark Dataframes,我的数据集如下: 我正在使用PySpark解析数据,稍后使用以下代码创建数据帧: from pyspark.sql import SparkSession from pyspark.sql import Row from pyspark.sql import functions as f def parseInput(line): fields = line.split(',') stationID=fields[0] entryType=fields[2]

我的数据集如下:

我正在使用PySpark解析数据,稍后使用以下代码创建数据帧:

from pyspark.sql import SparkSession
from pyspark.sql import Row
from pyspark.sql import functions as f

def parseInput(line):
    fields = line.split(',')
    stationID=fields[0]
    entryType=fields[2]
    temperature= fields[3]*0.3
    return Row(stationID,entryType,temperature)

spark = SparkSession.builder.appName("MinTemperatures").getOrCreate()
lines = spark.sparkContext.textFile("data/1800.csv")
temperatures = lines.map(parseInput)
minTemps=temperatures.filter(lambda x:x[1]=='TMIN')
df = spark.createDataFrame(minTemps)
我得到以下错误:

TypeError: can't multiply sequence by non-int of type 'float'

显然,如果我从
temperature=fields[3]*0.3
中删除0.3,则创建数据帧工作。如何使用浮点数和一些基本的数学运算返回
温度

尝试温度=浮点数(字段[3])*0.3

尝试温度=浮点数(字段[3])*0.3

您可以先读取文件而不进行乘法,然后将其转换为键入Double,最后进行乘法

我假设您的csv文件有头。
以下代码用于铸造:

data=data.withColumn(“COLUMN_NAME”,数据[“COLUMN_NAME]”)。强制转换(“double”))

您可以先读取文件而不进行乘法运算,然后将其转换为键入Double,最后执行乘法运算

我假设您的csv文件有头。
以下代码用于铸造:

data=data.withColumn(“COLUMN_NAME”,数据[“COLUMN_NAME]”)。强制转换(“double”))

谢谢你的回答谢谢你的回答谢谢你的回答谢谢你的回答谢谢你的回答