java - 获取 org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector 无法转换为 org.apache.hadoop.hive.ql.exec.vector.LongColumnVector
问题描述
// column: bigint
if (getTypes(column, struct).equalsIgnoreCase("bigint")) {
if (!lineArray[column].isEmpty()) {
try {
((LongColumnVector) batch.cols[column]).vector[row] = Long.parseLong(lineArray[column]);
} catch (NumberFormatException e) {
HiveDecimal hiveDecimal = HiveDecimal.create(lineArray[column]);
batch.cols[column]=new DecimalColumnVector(lineArray[column].length(), 0);
((DecimalColumnVector) batch.cols[column]).vector[row] = (new HiveDecimalWritable(hiveDecimal));
} catch (Exception e) {
e.printStackTrace();
}
} else {
((LongColumnVector) batch.cols[column]).noNulls = false;
((LongColumnVector) batch.cols[column]).isNull[row] = true;
((LongColumnVector) batch.cols[column]).vector[row] = LongColumnVector.NULL_VALUE;
// ((CustomLongColumnVector) batch.cols[column]).fillWithNulls();
}
}
我正在尝试执行上面的代码片段。lineArray
是一个字符串数组。但它失败了java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.LongColumnVector
。请帮忙。
解决方案
推荐阅读
- hyperledger-fabric - 未能调用链代码契约,错误:事务返回失败:ReferenceError:bor 未定义
- unit-testing - 如何通过测试到达 catchError 运算符
- ios - SDK 版本问题。此应用更新是使用 iOS 12.1 SDK 构建的。自 2020 年 6 月 30 日起,iPhone 应用程序的更新必须使用 iOS 13 SDK 构建
- postgresql - Google Cloud Platform 中的 PostgreSQL 自动备份问题
- mysql - 如何更正 MySQL 多个 JOINS 查询中的列名值
- javascript - KonvaJS | 形状位置不正确
- python - 模板django中的对象过滤
- c# - Microsoft.ReportViewer.WinForms.V15 与 .NET Core 3.1 不兼容 - 如何在 WPF Core 中显示 RDLC?
- javascript - JavaScript。如何实现最后 5 个搜索查询的数组?
- c# - 是否可以从子网格视图访问父列表视图项?