spark sql 数据类型转换_Spark将列转换为存储在字符串中的sql类型

简单的请求是我需要帮助将列添加到数据框,但是列必须是空的,其类型来自... spark.sql.types并且类型有从字符串中定义。Spark将列转换为存储在字符串中的sql类型

我可以用ifs或case来做这件事,但我正在寻找更优雅的东西。东西并不需要在org.apache.spark.sql.types

每一种类型写的情况下,如果我这样做,例如:

df = df.withColumn("col_name", lit(null).cast(org.apache.spark.sql.types.StringType))

它按预期工作,但我已存储的类型作为一个字符串,

var the_type = "StringType"

或 VAR the_type = “org.apache.spark.sql.types.StringType”

,我不能得到它通过定义从t型工作他串。

对于这里感兴趣的是一些更多的细节:我有一个包含作为字符串的元组(col_name,col_type)的集合,我需要为两个数据框之间的未来联合添加具有正确类型的列。

目前,我有这样的:

for (i

val tip = Class.forName("org.apache.spark.sql.types."+i._2)

df = df.withColumn(i._1, lit(null).cast(the_type))

df }

如果我使用

val the_type = Class.forName("org.apache.spark.sql.types."

你可能感兴趣的:(spark,sql,数据类型转换)