小编wub*_*000的帖子

在Google BigQuery中选择除一些以外的所有列?

有没有办法选择*除了BigQuery中的[x,y,z列名称]?我看到MySQL的一些解决方案,但不确定它是否适用于BQ.

谢谢.

google-bigquery

25
推荐指数
2
解决办法
2万
查看次数

TypeError:|:'list'和'list'的不支持的操作数类型

在Python中,我想编写一个列表解析来迭代2个字典的键的并集.这是一个玩具示例:

A = {"bruno":1, "abe":2}.keys()
B = {"abe":5, "carlton":10}.keys()

>>>[ k for k in A | B ]
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Traceback (most recent call last)
<ipython-input-221-ed92ac3be973> in <module>()
      2 B= {"abe":5, "carlton":10}.keys()
      3 
----> 4 [ k for k in A|B]

TypeError: unsupported operand type(s) for |: 'list' and 'list'
Run Code Online (Sandbox Code Playgroud)

理解对于1个词典来说效果很好.例如:

>>>[ k for k in A]
['bruno', 'abe']
Run Code Online (Sandbox Code Playgroud)

不确定错误在哪里.我在教科书中跟随一个例子,根据这本书,这种类型的并集和交集运算符应该可以正常工作.请让我知道你的想法.谢谢.

python dictionary list-comprehension set

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

如何在Google BigQuery中为数千个类别创建虚拟变量列?

我有一个包含两列的简单表:UserID和Category,每个UserID可以重复几个类别,如下所示:

UserID   Category
------   --------
1         A
1         B
2         C
3         A
3         C
3         B
Run Code Online (Sandbox Code Playgroud)

我想“虚拟化”该表:即创建一个输出表,该表的每个列都有由虚拟变量组成的唯一类别(0/1,取决于UserID是否属于该特定类别):

UserID    A  B  C
------    -- -- --
1         1  1  0
2         0  0  1
3         1  1  1
Run Code Online (Sandbox Code Playgroud)

我的问题是我有数千个类别(在此示例中不只是3个类别),因此无法使用CASE WHEN语句有效地完成此操作。

所以我的问题是:

1)有没有一种方法可以在不使用数千个CASE WHEN语句的情况下“虚拟化” Google BigQuery中的Category列。

2)这是UDF功能正常工作的情况吗?看起来确实是这样,但是我对BigQuery中的UDF不够了解,无法解决此问题。有人可以帮忙吗?

谢谢。

mysql sql google-bigquery dummy-variable

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