我的 PredictionIO 事件服务器中存储了多少事件?

How many events are stored in my PredictionIO event server?

我将未知数量的事件导入我的 PIO 事件服务器,现在我想知道该数量(以便衡量和比较推荐引擎)。我找不到对应的 API,所以我查看了我的服务器使用的 MySQL 数据库。我找到了两个 tables:

mysql> select count(*) from pio_event_1;
+----------+
| count(*) |
+----------+
|  6371759 |
+----------+
1 row in set (8.39 sec)

mysql> select count(*) from pio_event_2;
+----------+
| count(*) |
+----------+
|  2018200 |
+----------+
1 row in set (9.79 sec)

两个table看起来很像,所以我还是不确定。

哪个 table 相关? pio_event_1 和 pio_event_2 有什么区别?

是否有命令或 REST API 我可以在其中查找已存储事件的数量?

您可以通过 shell 中描述的火花 troubleshooting docs

启动 shell
pio-shell --with-spark

然后找到您应用的所有事件并计算它们

import io.prediction.data.store.PEventStore
PEventStore.find(appName="MyApp1")(sc).count

您还可以通过传递更多参数来过滤以查找不同的事件子集。看到api docs for more details. The LEventStore也是一个选项

连接到您的数据库

\c db_name

列出表格

\dt;

运行查询

select count(*) from pio_event_1;

PHP

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=db_name user=postgres");

$result = pg_query($dbconn, "select count(*) from pio_event_1");
if (!$result) {
    echo "An error occurred.\n";
    exit;
}

// Not the best way, but output the total number of events. 
while ($row = pg_fetch_row($result)) {
    echo '<P><center>'.number_format($row[0]) .' Events</center></P>';
}  ?>