python - PySpark Dataframe:逗号到点

我已经在浮点数中使用逗号导入了数据,我想知道如何将逗号“转换”为点。我正在使用pyspark数据帧,因此我尝试了以下操作:

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

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

而且肯定不行。
那么,我们可以直接在spark的dataframe中替换它,还是换成numpy类型或其他类型?
谢谢!


最佳答案:

我想你失踪了

from pyspark.sql.types import FloatType

正如Pushkr所建议的那样,如果不将结果转换为float,带replace的udf将返回string列
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

相关文章:

python - 如何在Google colaboratory中的笔记本上运行nbconvert

python - python清除csv文件

python - 删除对应于小于指定大小的组的行

python - Heroku的新手-“没有像Web这样的类型”

python - Python-BeautifulSoup抓取非标准Web表

python - 在Python SUDS客户端上使用复杂数据类型

python - 在Python中解密超级吗?

python - / accounts / register /上的DidsNotExist不存在网站匹配查询。 (Django,Python)

python - 解压缩文件导致“BadZipFile:文件不是zip文件”

python - 确定类属性是否为只读数据描述符