apache-spark - Spark 无法合并镶木地板文件 (INTEGER -> DECIMAL)
问题描述
我有 2 个镶木地板文件。
第一个包含以下列:DECIMAL: decimal(38,18) (nullable = true)
第二个具有相同的列,但类型不同:DECIMAL: integer (nullable = true)
我想合并它们,但我不能简单地单独阅读它们并将强制转换到特定列中,因为这是接收许多不同拼花模式的应用程序的一部分。我需要能够涵盖所有场景的东西。
我都这样读:
df = spark.read.format("parquet").load(['path_to_file_one', 'path_to_file_2'])
当我尝试显示数据时失败并出现以下错误
Parquet 列无法转换。列:[DECIMAL],预期:DecimalType(38,18),找到:INT32
我正在使用具有以下配置的 Azure Databricks:
- DBR:7.1
- 火花 3.0.0
我在这里上传了镶木地板文件:https ://easyupload.io/m/su37e8
无论如何我可以强制 spark 将空列自动转换为另一个数据框中同一列的类型吗?
这应该很容易,所有列都可以为空......
解决方案
推荐阅读
- python - 递归地定义带有谓词的映射
- elasticsearch - 按嵌套字段对文档进行排序
- java - Firebase 实时数据库中的 Java HTTP 调用,用于软件中的数据更改
- unity3d - Unity .unity-Files (Scenes) 在 IDE 中而不是在 Unity3D 中打开
- graphql - 为什么我在过滤器中使用枚举时在 graphql 中出现语法错误?
- php - 强制 PHP 运行所有 if 条件
- gtk3 - bwrap:execvp 应用程序:没有这样的文件或目录(GNOME Builder Flatpak)
- reactjs - react-select AsyncSelect loadOptions 通过 React.cloneElement
- javascript - 为什么 redux thunk 返回承诺?
- c - 如何将数组存储到C中的数组中?