У меня есть наборы данных, как показано ниже:
введите описание изображения здесь
Я использую PySpark для анализа данных и создания DataFrame позже, используя приведенный ниже код:
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'
Очевидно , если я удалю 0,3 из temperature= fields[3]*0.3
, создание DataFrame сработает. Как я могу вернуть temperature
с числом с плавающей запятой и некоторыми математическими операциями c?