Apache spark 创建一个将时间转换为二进制响应变量的函数
我目前有一个RDD,其中有两列Apache spark 创建一个将时间转换为二进制响应变量的函数,apache-spark,pyspark,apache-spark-sql,apache-spark-mllib,decision-tree,Apache Spark,Pyspark,Apache Spark Sql,Apache Spark Mllib,Decision Tree,我目前有一个RDD,其中有两列 Row(皮卡时间=datetime.datetime(2014,2,9,14,51) dropoff_time=datetime.datetime(2014,2,9,14,58) 我想把它们转换成一个二进制响应变量,其中1表示夜间,0表示白天 我知道我们可以使用UserDefinedFunction创建一个函数,将这些函数更改为所需的格式 例如,我有另一个列,它是一个字符串,将付款类型指定为“CSH”或“CRD”,因此我可以通过这样做来解决这个问题 pay_ma
Row(皮卡时间=datetime.datetime(2014,2,9,14,51)
dropoff_time=datetime.datetime(2014,2,9,14,58)
我想把它们转换成一个二进制响应变量,其中1表示夜间,0表示白天
我知道我们可以使用UserDefinedFunction
创建一个函数,将这些函数更改为所需的格式
例如,我有另一个列,它是一个字符串,将付款类型指定为“CSH”或“CRD”,因此我可以通过这样做来解决这个问题
pay_map={'CRD':1.0,'CSH':0.0}
pay_bin=UserDefinedFunction(lambda z:pay_map[z],DoubleType())
df=df.withColumn('payment_type',pay_bin(df['payment_type']))
我将如何将相同的逻辑应用于我所问的问题?如果有帮助,我将尝试转换这些变量,因为我将运行决策树。此处不需要自定义项。您可以在和类型转换之间使用
:
从pyspark.sql.functions导入
def在_范围内(colname,下限=6,上限=17):
"""
:param colname-输入列名(str)
:下限-日间小时的下限(整数,0-23)
:上限-日间小时的上限(整数,0-23)
"""
断言0