gpt4 book ai didi

python - pyspark : KeyError when converting a DataFrame column of String type to Double

转载 作者:行者123 更新时间:2023-11-30 09:52:06 25 4
gpt4 key购买 nike

我正在尝试使用 PySpark 学习机器学习。我有一个数据集,其中有几个 String 列,其值是 True 或 False 或 Yes 或 No 。我正在使用 DecisionTree,我想将这些 String 值转换为相应的 Double 值,即 True, Yes应更改为 1.0False, No 应更改为 0.0。我看到一个教程,他们做了同样的事情,我想出了这个代码

df = sqlContext.read.csv("C:/../churn-bigml-20.csv",inferSchema=True,header=True)

from pyspark.sql.types import DoubleType
from pyspark.sql.functions import UserDefinedFunction

binary_map = {'Yes':1.0, 'No':0.0, 'True':1.0, 'False':0.0}
toNum = UserDefinedFunction(lambda k: binary_map[k], DoubleType())

csv_data = df.drop('State').drop('Area code') \
.withColumn('Churn', toNum(df['Churn'])) \
.withColumn('International plan', toNum(df['International plan'])) \
.withColumn('Voice mail plan', toNum(df['Voice mail plan'])).cache()

但是,当我运行此程序时,我收到很多类似这样的错误。

  File "C:\..\spark-2.1.0\python\lib\pyspark.zip\pyspark\worker.py", line 70, in <lambda>
File "C:\..\workspace\PyML\src\ModelBuilding.py", line 20, in <lambda>
toNum = UserDefinedFunction(lambda k: binary_map[k], DoubleType())
KeyError: False

注意:我正在使用 Spark 2.1 和 Python 3.5 开发 PySpark,我猜我遵循的教程使用的是 Spark 1.6 和 Python 2.7。所以我不知道这是否是 Python 语法问题之一。

最佳答案

我通过将映射部分更改为:

binary_map = {'Yes':1.0, 'No':0.0, True : 1.0, False : 0.0}
toNum = UserDefinedFunction(lambda k: binary_map[k], DoubleType())

我刚刚删除了《真与假》中的引言。我认为这很奇怪,但是当我使用 print(df.printSchema()) 检查 DataFrame 的架构时,它显示具有 True 和 False 值的字段是类型为 bool 值。

架构

root
|-- State: string (nullable = true)
|-- Account length: integer (nullable = true)
|-- Area code: integer (nullable = true)
|-- International plan: string (nullable = true)
|-- Voice mail plan: string (nullable = true)
.
.
.
|-- Customer service calls: integer (nullable = true)
|-- Churn: boolean (nullable = true)

这就是为什么我必须去掉引号。谢谢。

关于python - pyspark : KeyError when converting a DataFrame column of String type to Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com