从Pyspark到Hive截断为Varchar(8)的字符串

从Pyspark到Hive截断为Varchar(8)的字符串,pyspark,hive,apache-spark-sql,Pyspark,Hive,Apache Spark Sql,我在pyspark中有一个数据帧,它的列类型为字符串,值的长度从6到30不等。使用以下命令将此数据帧写入配置单元时: test.write.mode(“overwrite”).saveAsTable(“schema\u name.table\u name”) 该特定列更改为varchar(8)并截断所有额外字符 在编写之前,我已经尝试将该列转换为varchar(32),但没有成功。即使在写之前根据长度(降序)排序也不起作用 我如何解决它?您能试着找出故障点吗?将源数据拆分为5/10的数据束。通过

我在pyspark中有一个数据帧,它的列类型为字符串,值的长度从6到30不等。使用以下命令将此数据帧写入配置单元时:

test.write.mode(“overwrite”).saveAsTable(“schema\u name.table\u name”)

该特定列更改为varchar(8)并截断所有额外字符

在编写之前,我已经尝试将该列转换为varchar(32),但没有成功。即使在写之前根据长度(降序)排序也不起作用


我如何解决它?

您能试着找出故障点吗?将源数据拆分为5/10的数据束。通过查询传递每一束数据,并查看是哪个数据集导致了这种情况。然后您就可以了解为什么记录会导致表定义发生更改(这很奇怪)。