繁体   English   中英

PySpark Dataframe:逗号点

[英]PySpark Dataframe : comma to dot

我在浮点数中使用逗号导入数据,我想知道如何将'逗号转换为点。 我正在使用pyspark数据帧,所以我尝试了这个:

commaToDot = udf(lambda x : str(x).replace(',', '.'), FloatType())

myData.withColumn('area',commaToDot(myData.area))

它绝对不起作用。 那么我们可以直接用spark替换数据框中的数据,还是应该转换为numpy类型还是其他什么?

谢谢 !

另一种方法(不使用UDF)是:

myData = myData.withColumn('area', regexp_replace('area', ',', '.').cast('float'))

我想你错过了

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上测试过

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM