postgresql - 如何使 Spark DataFrameReader jdbc 接受自定义类型的 Postgres 数组
问题描述
使用DataFrameReader函数Unsupported type ARRAY
读取表时得到:jdbc()
java.sql.SQLException: Unsupported type ARRAY
at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.org$apache$spark$sql$execution$datasources$jdbc$JdbcUtils$$getCatalystType(JdbcUtils.scala:251)
at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$8.apply(JdbcUtils.scala:316)
at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$8.apply(JdbcUtils.scala:316)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.getSchema(JdbcUtils.scala:315)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:63)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation$.getSchema(JDBCRelation.scala:210)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation$.apply(JDBCRelation.scala:225)
at org.apache.spark.sql.DataFrameReader.jdbc(DataFrameReader.scala:313)
表是这样的:
mydb=> \d check_type;
Table "public.check_type"
Column | Type | Collation | Nullable | Default
--------+-----------+-----------+----------+---------
id | integer | | |
types | my_type[] | | |
mydb=> \d my_type;
Composite type "public.my_type"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
有解决方法吗?或者这是一个预期的行为?
火花版本:
Spark-core = 2.4.0;
Spark-sql = 2.4.0;
解决方案
推荐阅读
- java - getSheet & getSheetAt 抛出空指针异常
- python - 我的网站在 IP 地址上正常服务,但在域名上不正常
- android - 广告未显示在我的应用程序中
- docker - Dockerfile 如何将文件名设置为 env
- c# - Double.GetHashCode() 的 C# 缺陷
- html - CSS 在 Chrome 中工作,但在 Firefox 中中断
- centos7 - 在 cloudera manager 添加服务 hdfs 期间,我收到错误消息 failed to create tmp directory
- shell - 转义shell中环境变量中的引号
- docker - 在不同的 ip 上创建 minikube 实例
- apache-spark - Spark StringIndexer.fit 在大型记录上非常慢