DataFrame registerTempTable(注册临时表)后Table Not Found问题的解决
2017-10-16 11:01
776 查看
转:http://blog.csdn.net/sparkexpert/article/details/51206487
所说这个错误没有遇到过不过背后的原理还是需要知道的。
将数据存成数据集的方式是实现数据各种操作非常有效的一种方式。也能够迅速实现数据的导入与导出。
Spark DataFrame提供了registerTempTable这样的接口,可以将数据对象存成临时表,便于后续的各种查询操作等。如select, join等。
以前都是直接从数据中读入数据,生成一个dataframe对象,都没有遇到 table not found的问题。然而今天用手工创建的时候,总是会报这个错误。
经过查资料,才发现由于自己的dataframe是用SQLContext创建的,而用HiveContext是无法访问的。这就涉及到registerTempTable生命周期的问题,以前都没细看,其生命周期只在所定义的sqlContext或hiveContext实例之中。换而言之,在一个sqlontext(或hiveContext)中registerTempTable的表不能在另一个sqlContext(或hiveContext)中使用。
因此,HiveContext来创建DataFrame就没有问题。成功解决。
所说这个错误没有遇到过不过背后的原理还是需要知道的。
将数据存成数据集的方式是实现数据各种操作非常有效的一种方式。也能够迅速实现数据的导入与导出。
Spark DataFrame提供了registerTempTable这样的接口,可以将数据对象存成临时表,便于后续的各种查询操作等。如select, join等。
以前都是直接从数据中读入数据,生成一个dataframe对象,都没有遇到 table not found的问题。然而今天用手工创建的时候,总是会报这个错误。
经过查资料,才发现由于自己的dataframe是用SQLContext创建的,而用HiveContext是无法访问的。这就涉及到registerTempTable生命周期的问题,以前都没细看,其生命周期只在所定义的sqlContext或hiveContext实例之中。换而言之,在一个sqlontext(或hiveContext)中registerTempTable的表不能在另一个sqlContext(或hiveContext)中使用。
因此,HiveContext来创建DataFrame就没有问题。成功解决。
相关文章推荐
- DataFrame registerTempTable(注册临时表)后Table Not Found问题的解决
- iOS开发UITableView篇:[self.tableView reloadData]执行时间过长问题解决历程
- MySQL 5.6 解决InnoDB: Error: Table "mysql"."innodb_table_stats" not found.问题
- 使用“alter system register;”解决动态监听注册缓慢问题
- Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset.问题的分析与解决
- Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset问题的分析与解决
- Win7/Win8中注册控件失败,提示“DllRegisterServer的调用失败,错误代码为0x******** ” 问题的解决办法
- 关于Delphi2007 Remote Data Module 模块无法注册的问题的解决
- Microsoft.Crm.Setup.SrsDataConector.RegisterServerAction 操作失败 Requested value 'Geo' was not found 的解决方法
- win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法
- 关于Delphi2007 Remote Data Module 模块无法注册的问题的解决
- 怎样解决python dataframe loc,iloc循环处理速度很慢的问题
- cbind()/data.frame()构建数据框字符串chr变因子Factor问题解决
- 解决 Class not found和Base table or view not found: 1051 问题
- QT 信号槽connect中解决自定义数据类型或数组作为函数参数的问题——QT qRegisterMetaType 注册MetaType——关键:注册自定义数据类型或QMap等容器类
- Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset.问题的分析与解决
- 如何避免spark dataframe的JOIN操作之后产生重复列(Reference '***' is ambiguous问题解决)
- 关于Delphi2007 Remote Data Module模块无法注册的问题的解决
- R语言——解决矩阵内“No data available in table”空矩阵赋值问题
- ORACLE使用“alter system register;”解决动态监听注册缓慢问题