mongodb - 无法使用 presto 从 mongodb 获取记录
问题描述
我在 etc/catalog 下有一个名为 mongodb.properties 的 mongodb 目录当我运行 presto shell 并执行命令时: Show tables; 我显示了 mongodb 的集合,但是当我运行选择查询时,它给了我错误。
presto> select * from <catalog>.<schema>.<collection/table>;
Gives error :
java.sql.SQLException: Query failed (#20190429_125534_00001_qxggq): line 1:8: SELECT * not allowed in queries without FROM clause
at io.prestosql.jdbc.PrestoResultSet.resultsException(PrestoResultSet.java:1839)
at io.prestosql.jdbc.PrestoResultSet.getColumns(PrestoResultSet.java:1749)
at io.prestosql.jdbc.PrestoResultSet.<init>(PrestoResultSet.java:118)
at io.prestosql.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:251)
at io.prestosql.jdbc.PrestoStatement.execute(PrestoStatement.java:229)
at io.prestosql.jdbc.PrestoStatement.executeQuery(PrestoStatement.java:78)
at spark_mongo_poc.SparkMongo.process_query(SparkMongo.java:32)
at spark_mongo_poc.SparkMongo.main(SparkMongo.java:76)
Presto> select name from <mongodb>.<schema>.<collection>;
Gives error :
java.sql.SQLException: Query failed (#20190429_125718_00002_qxggq): line 1:8: Column 'name' cannot be resolved
at io.prestosql.jdbc.PrestoResultSet.resultsException(PrestoResultSet.java:1839)
at io.prestosql.jdbc.PrestoResultSet.getColumns(PrestoResultSet.java:1749)
at io.prestosql.jdbc.PrestoResultSet.<init>(PrestoResultSet.java:118)
at io.prestosql.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:251)
at io.prestosql.jdbc.PrestoStatement.execute(PrestoStatement.java:229)
at io.prestosql.jdbc.PrestoStatement.executeQuery(PrestoStatement.java:78)
at spark_mongo_poc.SparkMongo.process_query(SparkMongo.java:32)
at spark_mongo_poc.SparkMongo.main(SparkMongo.java:76)
我想要与执行 db.collection.find({}); 时获得的相同数据;这以文件的形式给了我正确的结果
请帮忙
解决方案
我通过将 mongodb 集合名称更改为全部小写来解决上述问题。presto mongodb 目录存在一个问题,它无法识别大写字母集合名称,这就是它无法识别集合的原因。所以我把我的收藏箱改得更低,它开始工作了。:)
推荐阅读
- system.reactive - 如何在 Observable 链中重用对象实例?
- python - 在pygame中找到精灵的位置
- java - java swing中的绝对定位图像图标
- arrays - 如何遍历 JSON 数组
- reactjs - 如何在没有 redux 的情况下在 React App 中保存和更改大对象?
- php - While 语句不显示 ECHO
- java - 如何以编程方式将项目添加到 activity_main_drawer.xml 中的菜单
- vba - 为什么我们需要 Application.PathSeparator?
- react-native - React Native向View添加两个侧边框不起作用
- ios - 关于在两个 MAC 中为 IOS 使用相同的分发配置文件