我正在使用firefox的jupyter(或Ipython)笔记本,并希望在单元格中调试一些python代码.我正在使用'import ipdb; ipdb.set_trace()'作为一种断点,例如我的单元格具有以下代码:
a=4
import ipdb; ipdb.set_trace()
b=5
print a
print b
Run Code Online (Sandbox Code Playgroud)
用Shift + Enter执行后给出了这个错误:
--------------------------------------------------------------------------
MultipleInstanceError Traceback (most recent call last)
<ipython-input-1-f2b356251c56> in <module>()
1 a=4
----> 2 import ipdb; ipdb.set_trace()
3 b=5
4 print a
5 print b
/home/nnn/anaconda/lib/python2.7/site-packages/ipdb/__init__.py in <module>()
14 # You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
15
---> 16 from ipdb.__main__ import set_trace, post_mortem, pm, run, runcall, runeval, launch_ipdb_on_exception
17
18 …Run Code Online (Sandbox Code Playgroud) 我需要将ssh调试信息的输出写入文件.这个
ssh -v root@172.16.248.xx > result.txt
ssh -v root@172.16.248.xx 2>&1 > result.txt
Run Code Online (Sandbox Code Playgroud)
不起作用,文件result.txt为空,但在屏幕上我看到一堆调试行,如:
OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 172.16.248.xx [172.16.248.xx] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
etc
Run Code Online (Sandbox Code Playgroud)
有没有办法将这些行重定向到文件?
我正在使用PostgreSQL 9.6.我有这样一张桌子:
mac sn loc time date vin1 vin2 vin3
1a34 4as11111111 aaaa 7:06:18 1/1/2018 447.42 472.32 682.59
1a34 4as11111111 aaaa 7:06:43 1/1/2018 455.97 476.25 682.59
1a34 4as11111111 aaaa 7:07:35 1/1/2018 470.88 484.2 682.5
Run Code Online (Sandbox Code Playgroud)
我需要计算的平均vin1,vin2,vin3300秒(5分钟)的时间间隔内.例如,从第一次(7:06:18 - 7:11:18)开始,为范围内的日期.我可以使用此查询选择我需要的数据:
select * from table
where sn='4as11111111' and date between '2018-01-01' and '2018-01-02';
Run Code Online (Sandbox Code Playgroud)
但我不知道如何用300秒的时间间隔组,并为计算平均vin1,vin2,vin3对于那些5分钟间隔栏,让这样的事情:
mac sn loc time date vin1_av vin2_av vin3_av
1a34 4as11111111 aaaa 7:06:18 1/1/2018 450.0 480.32 600.59
1a34 4as11111111 …Run Code Online (Sandbox Code Playgroud) 我想运行粘合作业来对从 s3 到 Postgres DB 的许多 csv 文件执行 ETL 过程。每天都有新文件写入 s3 源存储桶。当我为这些文件运行爬网程序以生成具有架构的表时,我得到的不仅仅是胶水数据目录中的一张表,这意味着爬网程序无法将这些文件的架构识别为相同的。可能是因为有很多文件只有标题而没有内容。
因此,当我使用向导创建粘合作业时,当被询问要使用哪个表时,我仅从粘合数据目录(基于最大的 csv 文件创建)中选择一个表。因此,在数据库中,我仅拥有来自最大文件的数据,而不是来自所有 csv 文件的数据。我想这是因为爬虫在glue数据目录中创建这些表时,还保存了与该表相对应的文件列表,我在s3上找到了这些文件:/aws-glue-temporary-000xxxxx-us-east-2 /admin/partitionlisting/script_name/xxxxx/ 对于每个粘合作业,都有datasource0.input-files.json文件,其内容如下{"path":"s3://bucket1/customer/dt=2020-02-03/","files":["s3://bucket1/customer/dt=2020-02-03/file1.csv"]}]
当我检查当我尝试在胶水数据目录中手动创建架构表并将其分配给胶水作业脚本时,希望处理 s3 路径中的所有文件,它不会读取任何文件,并且在日志中我看到
- Skipping Partition {}
as no new files detected @ s3://bucket1/customer/ / or path does not exist
Run Code Online (Sandbox Code Playgroud)
当我检查相应的 datasource0.input-files.json 时,它没有任何文件:[{"path":"s3://bucket1/customer/","files":[]}]
我究竟做错了什么?如何使用手动创建的模式表使粘合作业脚本读取所选 s3 路径中的所有文件?或者是否可以仅使用包含所有文件的许多自动创建的模式表之一(而不仅仅是基于一个模式)?
我正在使用 AWS Lambda 函数(Python),该函数处理出现在同一 Amazon S3 存储桶和文件夹中的新文件。
当 中出现新文件时s3:/folder1/folderA, B, C,s3:ObjectCreated:*会生成一个事件并进入 中sqs1,然后由 进行处理Lambda1(处理成功后从其中删除sqs1)。
我需要与出现在(但不是folderB或C)中的相同新文件相关的相同事件s3:/folder1/folderA也进入sqs2,由 处理Lambda2。例如,Lambda1修改该文件并将其保存在某处,将该文件放入数据库中。Lambda2
但 AWS 文档说:
使用 Filter 的通知配置无法定义具有重叠前缀、重叠后缀或前缀和后缀重叠的过滤规则。
那么问题是如何绕过这个限制呢?是否有任何已知的推荐或标准解决方案?
debugging ×2
amazon-s3 ×1
amazon-sqs ×1
average ×1
aws-glue ×1
cell ×1
group-by ×1
ipdb ×1
jupyter ×1
postgresql ×1
python-3.x ×1
redirect ×1
sql ×1
ssh ×1