编程语言
首页 > 编程语言> > python – PySpark Dataframe:逗号点

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