我正在尝试使用下面的pyspark代码读取托管配置单元表的orc文件。
spark.read.format('orc').load('hive managed table path')
当我对获取的Dataframe执行打印模式时,如下所示
root
|-- operation: integer (nullable = true)
|-- originalTransaction: long (nullable = true)
|-- bucket: integer (nullable = true)
|-- rowId: long (nullable = true)
|-- currentTransaction: long (nullable = true)
|-- row: struct (nullable = true)
| |-- col1: float (nullable = true)
| |-- col2: integer (nullable = true)
|-- partition_by_column: date (nullable = true)
现在我无法解析这些数据,也无法对Dataframe进行任何操作。在应用show()这样的操作时,我得到一个错误
java.lang.IllegalArgumentException: Include vector the wrong length
有人面临同样的问题吗?如果是,请您建议如何解决。
2条答案
按热度按时间lg40wkob1#
由于我不确定的版本,你可以尝试其他方式加载orc文件。
使用sqlcontext
或者
或sparksql(推荐)
jfgube3f2#
这是一个众所周知的问题。
你得到那个错误是因为你在试着阅读
Hive ACID
但是spark仍然不支持这个。也许你可以把你的Hive表导出到普通的
ORC
然后用spark读取文件,或者尝试使用类似的替代方法Hive JDBC
如本文所述