下面是我做的方式:
toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))
我只是想知道,这是正确的方法吗,因为在运行逻辑回归时,我得到了一些错误,所以我想知道,这是麻烦的原因吗。
这里不需要UDF。列
已提供cast
方法和datatype
实例:
from pyspark.sql.types import DoubleType
changedTypedf = joindf.withColumn("label", joindf["show"].cast(DoubleType()))
或短字符串:
changedTypedf = joindf.withColumn("label", joindf["show"].cast("double"))
其中规范字符串名称(也可以支持其他变体)对应于SimpleString
值。所以对于原子类型:
from pyspark.sql import types
for t in ['BinaryType', 'BooleanType', 'ByteType', 'DateType',
'DecimalType', 'DoubleType', 'FloatType', 'IntegerType',
'LongType', 'ShortType', 'StringType', 'TimestampType']:
print(f"{t}: {getattr(types, t)().simpleString()}")
BinaryType: binary
BooleanType: boolean
ByteType: tinyint
DateType: date
DecimalType: decimal(10,0)
DoubleType: double
FloatType: float
IntegerType: int
LongType: bigint
ShortType: smallint
StringType: string
TimestampType: timestamp
types.ArrayType(types.IntegerType()).simpleString()
'array<int>'
types.MapType(types.StringType(), types.IntegerType()).simpleString()
'map<string,int>'
问题内容: 我有以下数据框: 现在,我想将Vacationdate列的数据类型更改为String,以便数据框也采用这种新类型并覆盖所有条目的数据类型数据。例如写后: Vacationdate的数据类型应被覆盖。 我已经使用过诸如cast,StringType或astype之类的函数,但是我没有成功。你知道怎么做吗? 问题答案: 让我们创建一些虚拟数据: 如果Spark> = 1.5.0,则可以使用
我正在尝试更改JTable中具有特定值的单元格,以更改为另一个值。但是,原始值是Double数据类型,我想更改为String数据类型。我写了下面的代码来更改文本,但我不知道为什么所有的值都不能匹配if语句条件。 这就是我的数据存储在文本文件中的方式:Name,N/a,-1.0 我想把-1.0改为N/A。这是我的代码:
我试图从一个表创建一个视图,并将其中一个列类型从varchar更改为DateStamp。 我的如下所示: 如何实现列具有datestamp格式的视图的结果? 谢谢你的建议。
我们使用的是Oracle,我们有一个要求,允许希腊字符存储在数据库中。目前,我们的DB实例不允许我们插入希腊字符,如“?”。在谷歌上,我发现这与字符集有关。我的oracle使用不支持希腊字符的nls_characterset-we8mswin1252。如果必须工作,我必须将字符集更改为AL32UTF8、UTF8、AL16UTF16或WE8ISO8859P7之一。既然数据库中已经有了这么多的数据,现
我有一个数据表 而这个结果就在这里 我想爆炸dev_property(列) 怎么爆炸?
我有一个dataframe有两列(C,D)被定义为string列类型,但列中的数据实际上是日期。例如,C列的日期为“01-apr-2015”,而D列的日期为“20150401”。我想将这些数据更改为日期列类型,但我没有找到一个好的方法。我查看了在Spark SQL的DataFrame中将string列类型转换为Date列类型所需的堆栈溢出。日期格式可以是“01-apr-2015”,我看了这篇文章,