我想在bash脚本中创建一个复杂的目录结构,并认为以下内容可行:
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
Run Code Online (Sandbox Code Playgroud)
这将创建:
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs
Run Code Online (Sandbox Code Playgroud)
但是,当我运行我的脚本时,我最终得到:
tmpdir
|
trunk
Run Code Online (Sandbox Code Playgroud)
有没有一种快速简便的方法来做到这一点,或者我将不得不诉诸
mkdir -p tmpdir/trunk/sources/includes
mkdir -p tmpdir/trunk/sources/docs
mkdir -p tmpdir/branches
mkdir -p tmpdir/tags
Run Code Online (Sandbox Code Playgroud) 我正在使用dict.get('keyword')方法查询嵌套字典.目前我的语法是......
M = cursor_object_results_of_db_query
for m in M:
X = m.get("gparents").get("parent").get("child")
for x in X:
y = x.get("key")
Run Code Online (Sandbox Code Playgroud)
但是,有时其中一个"父"或"子"标签不存在,我的脚本失败.我知道使用get()
我可以在表格中不存在密钥的情况下包含默认值...
get("parent", '') or
get("parent", 'orphan')
Run Code Online (Sandbox Code Playgroud)
但是,如果我包含任何Null
,''
或者我可以想到的空,则链接.get("child")
在调用时失败,''.get("child")
因为""
没有方法.get()
.
现在我解决这个的方法是使用一束连续的try-except
围绕每个.get("")
电话,但似乎愚蠢和unpython ---有没有办法为默认的回报"skip"
或"pass"
什么的,将仍然支持链接和失败智能,而不是深 - 潜入不存在的钥匙?
理想情况下,我希望这是对表单的列表理解:
[m.get("gparents").get("parent").get("child") for m in M]
Run Code Online (Sandbox Code Playgroud)
但是当缺席的父母导致.get("child")
呼叫终止我的程序时,这当前是不可能的.
是否可以在请求正文(或响应)的架构中指定列表的长度?支持使用查询函数验证 url 中传递的字符串的长度,但我没有看到任何列表。可能的用例是发送固定大小的浮点数列表以馈送到 ML 模型。
我从 DBT 开始。当我运行我的项目时,它创建了一个.user.yml
文件。其内容:
{id: c8e8abd2-09a3-4699-b444-3ef7ee5b04e5}
Run Code Online (Sandbox Code Playgroud)
从这个 github 问题来看,它似乎是某种 cookie,但我无法在任何地方找到有关其作用的任何信息。
有人可以解释一下这个文件的用途吗?我应该将其添加到我的.gitignore
吗?
有什么方法可以在不进行多任务处理的情况下按顺序运行回填?例如,如果我使用多个日期运行回填,例如气流回填 [dag] -s "2017-07-01" -e "2017-07-10",有没有办法在运行到第二天之前完成每个 dag ? 现在它在去下一个任务之前完成每项任务的所有日子。
谢谢。
我经常看到我们 Redshift 集群的领导节点在 100% CPU 时达到峰值。我已经确定了一个可能的原因:许多并发查询,以及许多领导者要计算的执行计划。这个假设似乎很有可能,因为我们收到最多查询的时间似乎与我们看到的 100% 领先者相同。
为了解决这个问题,我们想知道:是否还有其他可能导致领导者 CPU 高的主要原因?
(我精确的情况是只有领导节点处于高 CPU 并且工作人员看起来很好)
给定的
type foo struct {
id int
}
Run Code Online (Sandbox Code Playgroud)
两者看起来相当
var foos = []*foo{
{1},
{2},
{3}}
var foos = []*foo{
&foo{1},
&foo{2},
&foo{3}}
Run Code Online (Sandbox Code Playgroud)
这是为什么?虽然在 TGPL 中找不到提及它。
有人可以详细说明调用 DataFrame 的 memory_usage 方法时参数 deep=True 的作用吗?我从文档中了解到,它“钻取”到具有对象数据类型的列,以查看这些值实际占用内存的量。但什么是“正确”的值呢?DataFrame 实际上占用了我多少内存?
我在 DataFrame 的磁盘上加载了一个大约 2GB 的文件df
。如果没有深度,我感觉我有正确的值,因为我得到了接近文件大小的东西。...我得到deep=true
了这个值的 7 倍,而我的电脑甚至没有足够的 RAM 来容纳这个!
>>> memus = df.memory_usage()
>>> memusdeep = df.memory_usage(deep=True)
>>> print(memus.sum() / 10**9, 'GB')
1.874067408 GB
>>> print(memusdeep.sum() / 10**9, 'GB') # that's very much!
13.897614776 GB
Run Code Online (Sandbox Code Playgroud)
如果我在任务管理器中查看 python 程序使用的内存,我会看到一个值从 250MB 到大约 1.87GB 不等(与 相同deep=False
)。这是否意味着我的列在不使用时会从内存中“释放”,并且如果我使用所有列,总内存使用量可能会达到 宣布的 13.9 GB deep=True
?
我想向我的 AWS Application Load Balancer 添加 HTTPS 侦听器。我从这个线程中看到,如果没有自定义域(以及对其进行身份验证的证书),这是不可能的。我的问题是为什么?难道就不能有一个属于 AWS 的证书吗?当人们连接到我的 ALB 时,它会证明“是的,您确实在使用 HTTPS 域 blabla.us-west-1.elb.amazonaws.com 进行对话”?
$ virtualenv --version
16.3.0
$ pip --version
pip 19.0.1
Run Code Online (Sandbox Code Playgroud)
我创造了一个新鲜的环境。并运行
pip install apache-airflow
Run Code Online (Sandbox Code Playgroud)
安装成功
apache-airflow 1.10.2
Run Code Online (Sandbox Code Playgroud)
但是然后我运行
airflow initdb
Run Code Online (Sandbox Code Playgroud)
我得到了错误
ERROR [airflow.models.DagBag] Failed to import: /Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py
Traceback (most recent call last):
File "/Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/models.py", line 374, in process_file
m = imp.load_source(mod_name, filepath)
File "/Users/admin/workshops/apache/airflow/lib/python3.7/imp.py", line 171, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py", …
Run Code Online (Sandbox Code Playgroud) 我的几个 PCollections(来自不同来源)必须以相同的方式解码。
hits = (msgs | 'Parse' >> beam.Map(parse)
| 'Decode' >> beam.Map(decode_hit))
Run Code Online (Sandbox Code Playgroud)
然后:
dummy_hits = (dummy_msgs | 'Parse' >> beam.Map(parse)
| 'Decode' >> beam.Map(decode_hit))
Run Code Online (Sandbox Code Playgroud)
多亏了我之前给它们的名字,如果我可以重用这些转换,那就太好了。我天真地尝试了这个:
dummy_hits = (dummy_msgs | 'Parse'
| 'Decode')
Run Code Online (Sandbox Code Playgroud)
但我的管道不会建立。(类型错误:需要一个 PTransform 对象,得到解析)。
我认为有可能作为管道模块的文档说明:“如果需要应用相同的转换实例,则应使用右移运算符来指定新名称(例如input | "label" >> my_tranform
)”
这样做的方法是什么?只有这可能吗?
在python 2我用过:
d = {'a': 1, 'b': 2, 'c': 3}
for k in d.keys():
d[k] = d[k] * 2
print(d)
# {'a': 2, 'b': 4, 'c': 6}
Run Code Online (Sandbox Code Playgroud)
在python 3中我使用:
d = {'a': 1, 'b': 2, 'c': 3}
for k in d:
d[k] = d[k] * 2
print(d)
# {'a': 2, 'b': 4, 'c': 6}
Run Code Online (Sandbox Code Playgroud)
这种新语法让我觉得我正在迭代某些东西(dict)并修改它,这很糟糕.但实际上我只是在重复按键,所以这不应该带来任何麻烦,对吧?
python ×5
airflow ×2
dictionary ×2
apache-beam ×1
aws-application-load-balancer ×1
bash ×1
dbt ×1
fastapi ×1
go ×1
iteration ×1
linux ×1
literals ×1
pandas ×1
pip ×1
pointers ×1
pydantic ×1
python-2.7 ×1
slack-api ×1