小编Gau*_*eja的帖子

熊猫数据框中列表中元素的数量

当列表位于pandas数据框列中时,我需要获取列表中每个元素的频率

在数据中:

din=pd.DataFrame({'x':[['a','b','c'],['a','e','d', 'c']]})`

              x
0     [a, b, c]
1  [a, e, d, c]
Run Code Online (Sandbox Code Playgroud)

所需输出:

   f  x
0  2  a
1  1  b
2  2  c
3  1  d
4  1  e
Run Code Online (Sandbox Code Playgroud)

我可以将列表扩展成行,然后进行分组,但是此数据可能很大(百万条记录),并且想知道是否有更有效/直接的方法。

谢谢

python pandas

7
推荐指数
1
解决办法
4115
查看次数

使用 apache-airflow (cloud-composer) 调度从 BigQuery 到 MongoDB 的负载

我正在尝试设置将数据从 GCS 移动到 BigQuery 的数据管道,执行某些任务/处理并将其加载到 MongoDB 集群(所有这些都使用 DAG 在 python 中设置)。在加载到 MongoDB 之前,我一直能够实现这一目标。是否有任何现有的气流操作员可以做到这一点?如果没有,是否可以使用气流中提供的 mongoDB 钩子创建自定义代码?

谢谢,GT

编辑 1

我使用了(下面的代码片段)中的MongoHook源代码BigQueryGetDataOperator。我现在的问题是我需要为 10++ 百万行做这项工作,当我增加max_results='100'默认值时,BigQueryGetDataOperator我收到一个错误:

sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (_mysql_exceptions.DataError) (1406, "Data too long for column 'value' at row 1")

我知道我应该将数据推送到 XCom 中,chunks但不确定是否真的可以做到。有没有标准的方法来解析 Xcom 中的大量数据?使用 Airflow 实现这一目标的任何其他替代方案也将有所帮助。我唯一能想到的就是将数据写入 GCS,加载到 MongoDB …

python mongodb google-bigquery airflow google-cloud-composer

1
推荐指数
1
解决办法
1783
查看次数