fjc*_*cf1 3 python pyspark spark-dataframe
我在浮点数中使用逗号导入数据,我想知道如何将'逗号转换为点.我正在使用pyspark数据帧,所以我尝试了这个:
commaToDot = udf(lambda x : str(x).replace(',', '.'), FloatType())
myData.withColumn('area',commaToDot(myData.area))
Run Code Online (Sandbox Code Playgroud)
它绝对不起作用.那么我们可以直接用spark替换数据框中的数据,还是应该转换为numpy类型还是其他什么?
谢谢 !
另一种方法(不使用UDF)是:
myData = myData.withColumn('area', regexp_replace('area', ',', '.').cast('float'))
Run Code Online (Sandbox Code Playgroud)
小智 5
我想你失踪了
from pyspark.sql.types import FloatType
Run Code Online (Sandbox Code Playgroud)
正如 Pushkr 建议的那样,如果您不将结果转换为浮点数,则带有替换的 udf 将为您返回字符串列
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()
Run Code Online (Sandbox Code Playgroud)
我使用了单列文件,在 spark 2.11/python 3.6 上测试
| 归档时间: |
|
| 查看次数: |
2756 次 |
| 最近记录: |