在使用pio import命令进行批量数据导入之后,无法收集用于predictionio培训的数据

t3irkdon  于 2021-06-07  发布在  Hbase
关注(0)|答案(0)|浏览(255)

我创建了一个新的应用程序,并使用pio import命令批量导入了所有数据。但是,我无法使用pevent.find收集导入的数据进行培训。
批量导入数据:
以下命令运行时没有任何错误。我收到了事件导入的消息。 pio import --appid 1 --input data/bills.json json文件格式:

{"entityType": "bill_no", "targetEntityType": "items", "event": "bills", "entityId": "9", "targetEntityId": "008", "properties": {"s_id": "9"}}

交叉检查数据存储中是否存在事件(hbase是我们使用的数据库):

> import io.prediction.data.store.PEventStore
> val eventsRDD = PEventStore.find(appName="MyApp1")(sc)
> val c = eventsRDD.collect()

我收到一些消息,如下面的消息,显示事件已成功导入:

15/05/18 14:24:42 INFO DAGScheduler: Job 0 finished: collect at <console>:24, took 1.850779 s
c: Array[io.prediction.data.storage.Event] = Array(Event(id=Some(AaQUUBsFZxteRpDV_7fDGQAAAU1ZfRW1tX9LSWdZSb0),event=$set,eType=item,eId=i42,tType=None,tId=None,p=DataMap(Map(categories -> JArray(List(JString(c2), JString(c1), JString(c6), JString(c3))))),t=2015-05-15T21:31:19.349Z,tags=List(),pKey=None,ct=2015-05-15T21:31:19.354Z), Event(id=Some(DjvP3Dnci9F4CWmiqoLabQAAAU1ZfROaqdRYO-pZ_no),event=$set,eType=user,eId=u9,tType=None,tId=None,p=DataMap(Map()),t=2015-05-15T21:31:18.810Z,tags=List(),pKey=None,ct=2015-05-15T21:31:18.817Z), Event(id=Some(DjvP3Dnci9F4CWmiqoLabQAAAU1ZfRq7tsanlemwmZQ),event=view,eType=user,eId=u9,tType=Some(item),tId=Some(i25),p=DataMap(Map()),t=2015-05-15T21:31:20.635Z,tags=List(),pKey=None,ct=2015-05-15T21:31:20.639Z), Event(id=Some(DjvP3Dnci9F4CWmiqoLabQAAAU1ZfR...

我正在尝试使用以下代码收集事件。但是下面的命令返回一个空的Dataframe。它不能读取任何事件。

event_df = p_event_store.find('MyApp1')

用于收集数据的查找函数:

def find(self, app_name, channel_name=None, start_time=None, until_time=None,
         entity_type=None, entity_id=None, event_names=None, target_entity_type=None,
         target_entity_id=None):
    pes = self._sc._jvm.org.apache.predictionio.data.store.python.PPythonEventStore
    jdf = pes.find(app_name, channel_name, start_time, until_time, entity_type, entity_id,
                   event_names, target_entity_type, target_entity_id, self._jss)
    print("this is the outcome ")
    print(jdf)
    print(DataFrame(jdf,self.sql_ctx))
    return DataFrame(jdf, self.sql_ctx)

当我使用import server方法进行导入时,pevent.find会毫不费力地收集数据。如果批量导入,为什么pevent.find无法收集数据?我们使用批量导入,因为它是超快速和更少的时间消耗。
任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题