我正在spark SQL查询中执行concat
和cast
操作,如下所示:
spark.sql ("select cast(concat(df_view.col1," ") as Long) as new_col from df_view")
但是我在得到的DF中得到了null
值。如果仅执行强制转换或连续转换操作,则将获得正确的结果,但是同时执行两个操作,将获得null
值。
请提出建议,如果我在语法中缺少某些内容,我检查了其他答案,但无法找出问题所在,而且我在这里仅使用spark SQL,而不使用DF语法操作。
答案 0 :(得分:0)
如果您要以文本形式写入文件,则不要将其强制转换为Long,最好使用pad函数来确保您写入的宽度正确。
我从评论中认为,您的问题是固定宽度的文件,但一般来说,将空白合并为空,然后尝试将结果转换为数字是没有意义的。您之前已经明确地使其不是数字。
理想情况下,您将文件格式视为文件格式,而不是通过任意操作每个字段来处理,但是,如果您正确地处理每个字段,则后者可以工作。