小编Mai*_*upo的帖子

循环遍历 terraform 中的其他资源列表?

例如,假设我以这种方式定义了几个资源(以.tf格式):

resource resource_type X {
    name = "X"
}

resource resource_type Y {
    name = "Y"
}
...
Run Code Online (Sandbox Code Playgroud)

现在让我们稍后说我想创建新资源,每个资源都对应于先前创建的资源之一(X,Y,...) 有没有办法创建一个列表来保存先前创建的资源,然后循环该资源列表如下:

variable "list_of_previously_created_resources" {
    type = list(resource)
    default = [resource_type.X, resource_type.Y, ...]
}

# Now create corresponding resources:
resource type_Dependent d {
    for_each = var.list_of_previously_created_resource
    some_attribute = each.value.name
    depends_on = [each.value]
}
Run Code Online (Sandbox Code Playgroud)

上面的语法当然不起作用,但我尽力给出了我想做的伪代码。重要的是,我不一定要循环遍历该类型的每个资源,"resource_type"而只是循环我在列表变量中手动定义的资源。

我在文档中没有看到任何描述执行此操作的最佳方法的内容,所以我在这里。

resources attributes terraform

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

按列中的值“扩展”pandas 数据框

假设我从一个包含一些数据和一列数量的数据框开始:

In:  df=pd.DataFrame({'first-name':['Jan','Leilani'],'Qty':[2,4]})

Out: Qty    first-name
     2      Jan
     4      Leilani
Run Code Online (Sandbox Code Playgroud)

我想创建一个数据框,将数据复制并标记到新行中,次数等于每行上的数量。输出应该如下所示:

Qty     first-name  position
2       Jan         1
2       Jan         2
4       Leilani     1
4       Leilani     2
4       Leilani     3
4       Leilani     4
Run Code Online (Sandbox Code Playgroud)

我可以像这样使用 python 来做到这一点:

l=[]
x=0

for idx in df.index:
    x=0
    for _ in range(df.loc[idx]['Qty']):
        x+=1
        tempSrs=df.loc[idx]
        tempSrs['position']=x
        l.append(tempSrs)

outDf=pd.DataFrame(l)
Run Code Online (Sandbox Code Playgroud)

这是非常缓慢的。有没有办法使用熊猫函数来做到这一点?这实际上是一个“unpivot”,在pandas 中是“melt”,但我无法弄清楚如何使用melt 函数来实现这一点。

谢谢,

python python-3.x pandas

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

为另一个数据帧中的每一行复制和连接 Pandas 数据帧

我想为不同数据帧中的每一行创建和堆叠一个数据帧。例如

我尝试通过迭代一个行并复制和堆叠另一个来做到这一点,但这是一个非常缓慢的过程。有没有原生的 Pandas 方法来做到这一点?

python pandas

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

将标识列添加到 Snowflake 中的现有表?

我在 Snowflake 中有一个表“MY_TABLE”,我想向其中添加一个标识列。我试过

ALTER TABLE "MY_TABLE" 
    ADD COLUMN primary_key int IDENTITY(1,1);
Run Code Online (Sandbox Code Playgroud)

但这返回

SQL compilation error: Cannot add column 'PRIMARY_KEY' with non-constant default to non-empty table 'MY_TABLE'.
Run Code Online (Sandbox Code Playgroud)

这在雪花中是不可能的吗?

为了解决这个限制,我尝试创建一个临时版本的表

CREATE OR REPLACE TABLE "MY_TABLE_TEMP" LIKE "MY_TABLE"
ALTER TABLE "MY_TABLE_TEMP" ADD COLUMN primary_key int IDENTITY(1,1)

INSERT INTO "MY_TABLE_TEMP"
    SELECT * FROM "MY_TABLE";
Run Code Online (Sandbox Code Playgroud)

但现在我得到了错误

SQL compilation error: Insert value list does not match column list expecting <x+1> but got <x>
Run Code Online (Sandbox Code Playgroud)

哪种有意义,因为我没有传递主键。在这一点上,似乎我可能必须手动将列名的 x 列表(这是一个非常高的数字)输入到 sql 查询中,所以我想知道我是否只是做错了这一切。有没有其他人遇到过类似的问题?

sql primary-key snowflake-cloud-data-platform

3
推荐指数
3
解决办法
3558
查看次数