python 中的 maprdb find_by_condition 抛出异常 - Class com.mapr.db.Condition$Op 未找到
maprdb find_by_condition in python throws exception - Class com.mapr.db.Condition$Op not found
我正在为 maprdb 使用 python 绑定。虽然所有其他界面都按预期工作,但我在使用 "find_by_condition" 界面时遇到困难。
这是我试过的示例:-
import maprdb
condition = {"col1": "col_value"}
enter code here
table_conn.find_by_condition(maprdb.Condition(condition))
我在最后一行收到以下错误 -
Traceback (most recent call last):
File "test.py", line 4, in <module>
kpis = Kpi().find_by_condition(condition={"kpi_name": "memory_percent"})
File "/mapr/rdchdp1.schneider.com/user/g60683/cmd_ctrl_center/app/ui/mapr_utils.py", line 127, in find_by_condition
return self.table_conn.find_by_condition(maprdb.Condition(condition), columns)
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/tables.py", line 64, in find_by_condition
document_stream = self.java_table.find(python_to_java_cast(condition), columns) if columns else self.java_table.find(python_to_java_cast(condition))
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/utils.py", line 66, in python_to_java_cast
return value._get_java_object()
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/conditions.py", line 165, in _get_java_object
return self.java_condition
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/conditions.py", line 31, in java_condition
self._create_condition()
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/utils.py", line 101, in wrapper
raise MapRDBError(str(e)) from e
maprdb.utils.MapRDBError: java.lang.RuntimeException: Class com.mapr.db.Condition$Op not found
python_to_java_cast 似乎有 java 库错误。搜索过但没有结果。需要帮助.. 谢谢
尝试使用 MapR 官方支持的 maprdb-python-client 包:
https://pypi.org/project/maprdb-python-client/#description
https://mapr.com/docs/home/MapR-DB/JSON_DB/GettingStartedPythonOJAI.html
您可以使用 pip install maprdb-python-client
安装软件包。
下面是提交条件查询的示例:
from mapr.ojai.ojai_query.QueryOp import QueryOp
from mapr.ojai.storage.ConnectionFactory import ConnectionFactory
# Create a connection to data access server
connection_str = 'nodeb:5678?auth=basic;user=mapr;password=mapr;ssl=false;'
connection = ConnectionFactory.get_connection(connection_str=connection_str)
# Get a store and assign it as a DocumentStore object
store = connection.get_store('/crm_data')
# Create an OJAI query
query = {"$where": {"$like": {"phone_number": '%552-2152%'}}}
# options for find request
options = {'ojai.mapr.query.result-as-document': True}
# fetch OJAI Documents by query
query_result = store.find(query, options=options)
# Print OJAI Documents from document stream
for doc in query_result: print(doc.as_dictionary())
# close the OJAI connection
connection.close()
有关条件查询运算符的详细信息,请参阅:
这是 maprdb 入门的另一个参考资料:
我正在为 maprdb 使用 python 绑定。虽然所有其他界面都按预期工作,但我在使用 "find_by_condition" 界面时遇到困难。
这是我试过的示例:-
import maprdb
condition = {"col1": "col_value"}
enter code here
table_conn.find_by_condition(maprdb.Condition(condition))
我在最后一行收到以下错误 -
Traceback (most recent call last):
File "test.py", line 4, in <module>
kpis = Kpi().find_by_condition(condition={"kpi_name": "memory_percent"})
File "/mapr/rdchdp1.schneider.com/user/g60683/cmd_ctrl_center/app/ui/mapr_utils.py", line 127, in find_by_condition
return self.table_conn.find_by_condition(maprdb.Condition(condition), columns)
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/tables.py", line 64, in find_by_condition
document_stream = self.java_table.find(python_to_java_cast(condition), columns) if columns else self.java_table.find(python_to_java_cast(condition))
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/utils.py", line 66, in python_to_java_cast
return value._get_java_object()
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/conditions.py", line 165, in _get_java_object
return self.java_condition
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/conditions.py", line 31, in java_condition
self._create_condition()
File "/mapr/rdchdp1.schneider.com/projects/tools/anaconda/anaconda36/lib/python3.6/site-packages/maprdb/utils.py", line 101, in wrapper
raise MapRDBError(str(e)) from e
maprdb.utils.MapRDBError: java.lang.RuntimeException: Class com.mapr.db.Condition$Op not found
python_to_java_cast 似乎有 java 库错误。搜索过但没有结果。需要帮助.. 谢谢
尝试使用 MapR 官方支持的 maprdb-python-client 包:
https://pypi.org/project/maprdb-python-client/#description
https://mapr.com/docs/home/MapR-DB/JSON_DB/GettingStartedPythonOJAI.html
您可以使用 pip install maprdb-python-client
安装软件包。
下面是提交条件查询的示例:
from mapr.ojai.ojai_query.QueryOp import QueryOp
from mapr.ojai.storage.ConnectionFactory import ConnectionFactory
# Create a connection to data access server
connection_str = 'nodeb:5678?auth=basic;user=mapr;password=mapr;ssl=false;'
connection = ConnectionFactory.get_connection(connection_str=connection_str)
# Get a store and assign it as a DocumentStore object
store = connection.get_store('/crm_data')
# Create an OJAI query
query = {"$where": {"$like": {"phone_number": '%552-2152%'}}}
# options for find request
options = {'ojai.mapr.query.result-as-document': True}
# fetch OJAI Documents by query
query_result = store.find(query, options=options)
# Print OJAI Documents from document stream
for doc in query_result: print(doc.as_dictionary())
# close the OJAI connection
connection.close()
有关条件查询运算符的详细信息,请参阅:
这是 maprdb 入门的另一个参考资料: