【发布时间】:2020-07-07 20:03:54
【问题描述】:
我正在尝试读取 pyspark 使用不同架构编写的 avro 文件。小数列的精度差异。下面是我用pyspark写的avro文件夹的文件夹结构
/mywork/avro_data/day1/part-*
/mywork/avro_data/day2/part-*
下面是他们的架构
day1 = spark.read.format('avro').load('/mywork/avro_data/day1')
day1.printSchema()
root
|-- price: decimal(5,2) (nullable = True)
day2 = spark.read.format('avro').load('/mywork/avro_data/day2')
day2.printSchema()
root
|-- price: decimal(20,2) (nullable = True)
在读取整个数据帧时(两天)
>>> df = spark.read.format('avro').load('/mywork/avro_data/')
它给出了以下错误
java.lang.IllegalArgumentException: unscaled value too large for precision spark
为什么 pyspark 不隐式考虑更高的架构(向后兼容)
【问题讨论】:
-
哪个版本的火花?
-
我正在使用 spark-2.4.4 和 python 3.7.4