python – PySpark Dataframe:逗号点
作者:互联网
我在浮点数中使用逗号导入数据,我想知道如何将’逗号转换为点.我正在使用pyspark数据帧,所以我尝试了这个:
commaToDot = udf(lambda x : str(x).replace(',', '.'), FloatType())
myData.withColumn('area',commaToDot(myData.area))
它绝对不起作用.
那么我们可以直接用spark替换数据框中的数据,还是应该转换为numpy类型还是其他什么?
谢谢 !
解决方法:
我想你错过了
from pyspark.sql.types import FloatType
正如Pushkr建议udf with replace会给你返回字符串列,如果你不将结果转换为float
from pyspark import SQLContext
from pyspark.sql.functions import udf
from pyspark.sql.types import FloatType
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("ReadCSV")
sc = SparkContext(conf=conf)
sqlctx = SQLContext(sc)
df = sqlctx.read.option("delimiter", ";").load("test.csv", format="csv")
df.show()
commaToDot = udf(lambda x : float(str(x).replace(',', '.')), FloatType())
df2=df.withColumn('area',commaToDot(df._c0))
df2.printSchema()
df2.show()
我使用单列文件,在spark 2.11 / python 3.6上测试过
标签:python,pyspark,spark-dataframe 来源: https://codeday.me/bug/20190722/1501358.html