【问题标题】:How many events are stored in my PredictionIO event server?我的 PredictionIO 事件服务器中存储了多少事件?
【发布时间】:2016-06-08 06:14:10
【问题描述】:

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

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)

两张表看起来非常相似,所以我仍然不确定。

哪个表是相关的? pio_event_1 和 pio_event_2 有什么区别?

是否有命令或 REST API 可以让我查看存储的事件数量?

【问题讨论】:

    标签: apache-spark predictionio


    【解决方案1】:

    你可以通过troubleshooting docs中描述的spark shell

    使用

    启动 shell
    pio-shell --with-spark
    

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

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

    您还可以通过传递更多参数来过滤以查找不同的事件子集。有关详细信息,请参阅api docsLEventStore 也是一个选项

    【讨论】:

    • 非常有帮助的答案,谢谢!顺便说一句,这个数字竟然是 2018200,表 pio_event_2 中的行数。
    • 很高兴帮忙,我也不知道这两个 MySQL 表的区别
    【解决方案2】:

    连接到你的数据库

    \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>';
    }  ?>
    

    【讨论】:

    • 虽然这是对问题的有效答案,但它对 OP 以外的其他人(主要是该线程的未来访问者)添加一些解释您的代码实际做了什么会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-04-23
    • 2020-12-19
    • 2021-02-19
    • 2023-02-11
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多