提问人:RamK 提问时间:11/2/2023 更新时间:11/2/2023 访问量:31
为什么变量不能用于Pyspark中的数据类型转换
Why variable cannot be used for casting datatype in Pyspark
问:
我不明白为什么它会这样。我想动态转换 DataFrame 新列。但它会抛出错误。就好像我们直接提到的那样,它正在工作。 您的意见将帮助我纠正错误。
input_dict = {"memo":"None","office":"SYD,StringType()","off_no":"987654,IntegerType()"}
valu = input_dict.get(i).split(",")
print(valu[0],"````",valu[1])
cast_to =valu[1]
print(cast_to)
df = df.withColumn(i, lit(val[0]).cast(**cast_to**))
抛出错误
df = df.withColumn(i, lit(val[0]).cast(cast_to))
..\lib\site-packages\pyspark\sql\column.py:774: in cast
jc = self._jc.cast(dataType)
..lib\site-packages\py4j\java_gateway.py:1321: in __call__
return_value = get_return_value(
当我直接给演员时。它正在工作。不确定,为什么它表现得像它。如果我将数据类型分配给变量并在强制转换中使用它,则会抛出错误。我可以在字典中得到任何数据类型。所以它必须是动态的。
df = df.withColumn(i, lit(val[0]).cast(**StringType()**))
#Working
打印:SYD '''' 字符串类型 () 字符串类型()
我尝试了不同的方式并用谷歌搜索它。无法获得任何输入。需要您的输入,为什么它不适用于可变动态类型。
答: 暂无答案
上一个:如何将电子邮件地址值转换为数字?
下一个:转换嵌套 stl 容器内的值
评论
"StringType()"
和不是一回事。StringType()
.cast("string")