Python,phoenixdb - 没有得到一行(但也没有得到任何错误)

Posted

技术标签:

【中文标题】Python,phoenixdb - 没有得到一行(但也没有得到任何错误)【英文标题】:Python, phoenixdb - not getting a row (but not getting any errors either) 【发布时间】:2017-02-15 08:33:40 【问题描述】:

我设置了一个 Apache Phoenix DB,我正在尝试使用 Python 和 PhoenixDb 插件对其进行查询。

我有一个包含以下行的表格:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| PK | did | sensorid | sensor_timestamp | EXTRA_LEVEL | EXTRA_SCALE | EXTRA_HEALTH | EXTRA_STATUS | EXTRA_PLUGGED | EXTRA_PRESENT | EXTRA_VOLTAGE | level_percent | temperature_C | EXTRA_TECHNOLOGY | EXTRA_TEMPERATURE |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

当我尝试使用 phoenixdb 查询它时,它遗漏了 1 行我没有得到,但是我没有收到任何错误。

我的查询代码是:

import phoenixdb

connection = phoenixdb.connect(<url>)
cursor = connection.cursor()

query = """select PK,"did", "sensorid", "sensor_timestamp", 3
           from "sensor_data"
           where "did"='0'
           and "sensorid" = '1'
           and "sensor_timestamp" > '2'
           order by "sensor_timestamp"
           limit 10""".format(357139052213522, 902, 1463163952256, '"EXTRA_LEVEL", "EXTRA_SCALE", "EXTRA_HEALTH", ' \
             '"EXTRA_STATUS" "EXTRA_PLUGGED", "EXTRA_PRESENT", ' \
             '"EXTRA_VOLTAGE", "level_percent", "temperature_C", ' \
             '"EXTRA_TECHNOLOGY","EXTRA_TEMPERATURE"')

cursor.execute(query)

rows = cursor.fetchall()
for row in rows:
    print(row)

我的输出是这样的:

['357139052213522_1486731821342_902', '357139052213522', '902', '1486731821342', '64', '100', '2', '2', 'true', '3990', '64.0', '25.0', 'Li-ion', '257']

通过计算,我发现缺少一件物品。有没有人知道这可能是由于什么原因造成的?

【问题讨论】:

【参考方案1】:

好的。这是一个非常愚蠢的错误。我发现我的查询中遗漏了一个逗号。修复它可以解决所有问题:

query = """select PK,"did", "sensorid", "sensor_timestamp", 3
       from "sensor_data"
       where "did"='0'
       and "sensorid" = '1'
       and "sensor_timestamp" > '2'
       order by "sensor_timestamp"
       limit 10""".format(357139052213522, 902, 1463163952256, '"EXTRA_LEVEL", "EXTRA_SCALE", "EXTRA_HEALTH", ' \
         '"EXTRA_STATUS", "EXTRA_PLUGGED", "EXTRA_PRESENT", ' \
         '"EXTRA_VOLTAGE", "level_percent", "temperature_C", ' \
         '"EXTRA_TECHNOLOGY","EXTRA_TEMPERATURE"')

【讨论】:

以上是关于Python,phoenixdb - 没有得到一行(但也没有得到任何错误)的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 JDBC 连接到 Phoenix

Python背包分支和绑定

Python BeautifulSoup 硒刮刀

尝试在Python中将集合的结果写入csv文件,但只打印一行

matlab 直接得到矩阵一列、或者一行

storm问题记录 python 不断向kafka中写消息,spout做为消费者从kafka中读消息并emit给bolt,但是部分消息没有得到bolt的处理