PySpark 无法通过 sparkContext/hiveContext 读取 Hive ORC 事务表?我们可以使用 Pyspark 更新/删除配置单元表数据吗?
Posted
技术标签:
【中文标题】PySpark 无法通过 sparkContext/hiveContext 读取 Hive ORC 事务表?我们可以使用 Pyspark 更新/删除配置单元表数据吗?【英文标题】:PySpark is not able to read Hive ORC transaction table through sparkContext/hiveContext ? Can we update/delete hive table data using Pyspark? 【发布时间】:2019-08-01 14:57:55 【问题描述】:我尝试使用 PySpark 访问 Hive ORC 事务表(在 HDFS 上有基础增量文件),但我无法通过 sparkContext/hiveContext 读取事务表。
/mydim/delta_0117202_0117202
/mydim/delta_0117203_0117203
【问题讨论】:
【参考方案1】:Hive-ACID 表尚未正式支持
Spark
,请获取full dump/incremental dump of acid table
到常规的hive orc/parquet
分区表,然后使用 spark 读取数据。
有一个 Open Jira saprk-15348 以添加对读取 Hive ACID
表的支持。
如果您在 Acid 表(来自 hive)上运行 major compaction
,则 spark 只能读取 base_XXX
目录,但不能读取增量目录 Spark-16996在这个 jira 中解决。
有一些解决方法可以使用此链接中提到的SPARK-LLAP 读取酸表。
我认为从HDP-3.X
开始HiveWareHouseConnector能够支持读取HiveAcid表。
【讨论】:
我已经测试过了。从 CDP - HDP-3.0 开始,使用带有 Spark 的 Hive Warehouse Connector 库/插件将为 Hive 表(ORC 格式表)启用 ACID 合规性以上是关于PySpark 无法通过 sparkContext/hiveContext 读取 Hive ORC 事务表?我们可以使用 Pyspark 更新/删除配置单元表数据吗?的主要内容,如果未能解决你的问题,请参考以下文章
PySpark (Python):通过 SparkContext.newAPIHadoopFile 加载多行记录
Pyspark:Spyder 中的 SparkContext 定义引发 Java 网关错误
Jupyter中的PySpark SparkContext名称错误'sc'