小编cho*_*pay的帖子

将 Athena SQL 与正则表达式结合使用

我正在使用 DbVisualizer 连接到 athena 实例。我有一个有效的查询:

SELECT device, description, id, size, date FROM test.database WHERE month = '01'
and device not like '%link%'
and device not like '%Link%'
and device not like '%LINK%'
and id not like '%abc%'
and id not like '%Abc%'
and id not like '%ABC%'
group by device, description, id, size, date order by month desc 
Run Code Online (Sandbox Code Playgroud)

我想做的就是清理它并使用正则表达式捕获案例。我很确定 /link.*/ig并且/abc.*/ig会发现情况会改变它,但我不知道如何将其插入。我"input.regex" =也无法开始工作。

sql amazon-athena

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

boto3 file_upload 是否检查文件是否存在

我正在查看 boto3 文档,但找不到它是否本身支持检查文件是否已存在于 s3 中,如果不存在,请不要尝试重新上传。

这是我的工作:

import boto3

s3_client = boto3.client('s3')
s3_bucket = 'bucketName'
s3_folder = 'folder1234/'
temp_log_dir = "tempLogs/"


s3_client.upload_file(temp_log_dir + file_name, s3_bucket, s3_folder + file_name)
Run Code Online (Sandbox Code Playgroud)

我注意到的是,如果文件已经在 S3 中退出,则来自 boto3 的 .upload_file() 仍会传输文件。我通过查看 iftop 进行了这项检查。

是否有一些我缺少禁用“如果文件存在则自动覆盖”的参数?

谢谢

编辑尝试 head 方法

s3 = boto3.resource('s3')
file_name = 'somelogfile.gz'

try:
    s3.Object(s3_bucket+ s3_folder+s3_filename).load()
    print 'success'
except botocore.exceptions.ClientError as e:
    print e
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 python-2.7 boto3

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

以编程方式导出 grafana 仪表板数据

我在grafana中有一个视觉效果。我可以手动转到菜单单击导出并导出 json 中的时间序列数据。这很好用。有没有办法可以在 python 中编写脚本?是否有一些我可以点击的 api 会返回视觉对象的 json?

我在谷歌上搜索,看起来我可以使用 api 创建仪表板/视觉效果并管理它们,但不确定如何使用 api 导出数据。

grafana grafana-api

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

过滤redis监控lpush

我有一个盒子,里面有很多 redis 的东西。我将代码从写入通道转换为执行 lpush。为了查看我的输出,我使用了 redis-cli 的monitor命令。有没有办法过滤监视器命令以仅显示我感兴趣的 lpush 通道。服务器上有很多内容,所以我无法捕获我的输出。

作为参考,我使用 redis-cli 订阅频道名称。但这对 lpush 不起作用

redis redis-cli

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

python跨不同文件的多处理

试图更好地理解这一点: https://pymotw.com/2/multiprocessing/basics.html

我有 20 多个“大”日志(每个日志大约 6-9gig,但经过压缩,即 log1...20.gz)

我的 python 脚本将遍历指定目录中的每个日志并计算出特定列的总数,然后写入文件并继续到下一个日志文件。我注意到,当我这样做时,我并没有使用系统中的所有核心。所以为了使用更多的核心,我这样做了

script1.py  < folder 1 (contains logs 1-5 , write to report1-5.txt) 
script2.py  < folder 2 (contains logs 6-10, write to report6-10.txt)
script3.py  < folder 3 (contains logs 11-15, write to report11-15.txt)
script4.py  < folder 4 (contains logs 16-20, write to report16-20.txt
Run Code Online (Sandbox Code Playgroud)

理想情况下,我只会有 script1.py < 文件夹 1 (包含所有 20 个日志并写入 report.txt)

如果我启用“导入多重处理”,我是否能够实现拥有 1 个脚本和许多工作人员浏览不同文件,或者是否有许多工作人员尝试处理 sale log.gz 文件?还是我误解了这些信息

python multiprocessing python-2.7

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

lftp 暂停并恢复下载

谷歌搜索并查看了这个论坛,但找不到我是否可以使用 lftp 暂停下载。

当前正在下载大量日志并想暂停,向系统添加更多驱动器并继续下载。

谢谢

python-2.7 lftp

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

熊猫从列中选择唯一值

通过执行以下操作,我能够在jupyter笔记中提取csv:

csvData= pd.read_csv("logfile.csv")
Run Code Online (Sandbox Code Playgroud)

我的数据如下所示:

event_timestamp ip  url 
2018-01-10 00:00 111.111.111.111 http://webpage1.com
2018-01-10 00:00 222.222.222.222 http://webpage2.com
...
..
.
Run Code Online (Sandbox Code Playgroud)

我得到了一个独特的IP列表:

list_ips = csvData("[ip]")
Run Code Online (Sandbox Code Playgroud)

我想做的是获得独特的。通常我会这样做:

list_ips.unique()
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我得到这个错误:

AttributeError: 'DataFrame' object has no attribute 'unique'
Run Code Online (Sandbox Code Playgroud)

(我可以使用list_ips.head(),它将列出一些IP,但它不是唯一列表)

谢谢

编辑 我的问题是我实际上有:

list_ips = csvData([["ip"]]) 
Run Code Online (Sandbox Code Playgroud)

因此,我卸下了1套括号,将其变成:

list_ips = csvData(["ip"]) 
Run Code Online (Sandbox Code Playgroud)

然后,我可以按照温家宝的榜样做:

list_ips.unique().tolist()
Run Code Online (Sandbox Code Playgroud)

输出:

['111.111.111.111','222.222.222.222'...]
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas

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

ipaddress.py 在有效的 IP 地址上出错

我正在运行 python 2.7。我下载了 ipaddress.py ( https://github.com/phihag/ipaddress )的原始文件。我试图运行一个测试来验证每个示例的 IP 地址。但即使是有效的 IP 地址似乎也无效。

>>> import ipaddress
>>> ipaddress.ip_address('127.0.0.1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "ipaddress.py", line 163, in ip_address
    ' a unicode object?' % address)
ipaddress.AddressValueError: '127.0.0.1' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?
>>> ipaddress.ip_address('192.168.0.1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

如何在python中打印出数据框

通常使用 jupyternotes 我可以导入熊猫制作我的数据框并导出到 csv。

我正在尝试使用 python 脚本自动执行这个重复出现的查询。我不知道如何测试我的脚本,因为我无法将 df 打印到屏幕上。在 jupyternotes 中,我只需要在任何单元格中输入 df 名称,它就会显示出来。

这是我在做什么

import pandas as pd
def run_agg_query(db):
    df1 = pd.read_sql( "select some query",conn)
    display(df1)
Run Code Online (Sandbox Code Playgroud)

但我无法显示 df。

python dataframe pandas jupyter

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

转换浮点数的熊猫删除指数

我有看起来像这样的数据:

Date            MBs     GBs
0   2018-08-14 20:10    32.00 MB    0.00 GB
1   2018-08-14 20:05    4.00 MB     0.00 GB
2   2018-08-14 20:00    1000.99 MB  1.23 GB
Run Code Online (Sandbox Code Playgroud)

我通过这样做剥离了 MB 和 GB:

df['MBs']=df['MB'].str.strip('MB')
df['GBs']=df['GB'].str.strip('GB')
Run Code Online (Sandbox Code Playgroud)

然后将数字转换为浮点数并得到总数:

df['MBs'] = df['MBs'].astype('float')
df['GBs'] = df['MBs'].astype('float')

df.loc['Total', ['MBs', 'GBs']] = df.sum()
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我的数据有指数

Date    Data Transferred (MB)   Data Transferred (GB)
146 2018-08-14 08:00:00 1.871237e+05    1.874017e+05
147 2018-08-14 07:55:00 1.123211e+05    1.961854e+05
148 2018-08-14 07:50:00 2.187703e+05    2.187123e+05
...
Total       1.408910e+08    1.408910e+08
Run Code Online (Sandbox Code Playgroud)

我如何将浮点数从指数转换为“正常”,我只是转换它,因为我需要得到总数

python dataframe pandas jupyter-notebook

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

使用带有python列表的IN构建SQL查询字符串

我建立了一个大熊猫感兴趣的值列表.

table1 = pd.read_csv("logswithIPs.csv")
cips = data_dash['ip'].unique().tolist()
print(cips[:10])
['111.111.111.111', '123.123.123.123', '122.122.122.122', '2.2.2.2', '3.3.3.3', '4.4.4.4', '5.5.5.5'...'']
Run Code Online (Sandbox Code Playgroud)

现在我有了上面的列表,我想看看这些IP是否存在于我的SQL数据库的表中.

filterIPs = pd.read_sql("select count(*) as count, url from "+table2+" where c_ip in "+cips+" group by url",conn)
Run Code Online (Sandbox Code Playgroud)

具体来说,我的问题在于我的语法c_ip in "+cips+":

TypeError: Can't convert 'list' object to str implicitly
Run Code Online (Sandbox Code Playgroud)

如何在SQL查询中正确包含列表?

***编辑

所以我终于让它工作了,看起来像熊猫不想要一个它想要一个字符串的列表.

所以我 cipTup = tuple(cips).然后在我的查询中我做了..

where c_ip in "+str(cipTup)" 
Run Code Online (Sandbox Code Playgroud)

它起作用了.

我的猜测是,熊猫知道如何将这样的字符串视为列表.

python dataframe pandas jupyter

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

不知道为什么我的python输出是循环的

我写了一些代码来读取文件中的数字.将其附加到变量,然后递增数字,以便下次运行时,文件中的数字将为+1.看起来它的工作除了它似乎增加了两次..例如这里是我的代码:

 11 def mcIPNumber():
 12         with open('mcIPlatest.txt', 'r+') as file:
 13                 NameNumber= file.read().replace('\n','')
 14                 NameNumber=int(NameNumber)
 15                 NewNumber= NameNumber+1
 16                 print "newnumber = %s" % NewNumber
 17                 file.seek(0)
 18                 file.write(str(NewNumber))
 19                 file.truncate()
 20         return NameNumber
 21
 22 def makeNameMCTag():
 23         NameNumber = mcIPNumber()
 24         NameTag = "varName" + str(NameNumber)
 25         print "Name Tag: %s" % NameTag
 26         mcGroup = "varTagmc"
 27         #IPNumber = 1
 28         mcIP = "172.16.0.%s" % NameNumber
 29         print ( "Multicast Tag: %s, %s" % (mcGroup,mcIP))
 30
 31 …
Run Code Online (Sandbox Code Playgroud)

python loops

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

Jupyter如何彼此相邻绘制2个DFS

我试图寻找几个SO,彼此相邻绘制2个地块,但我找不到适合我的情况。大多数情况涉及了解子图的工作方式。我希望有人可以在这里解释。

这是我在2个不同行上的2个不同图:

import matplotlib.pyplot as plt
from matplotlib import six
import pandas as pd
import numpy as np

Size = pd.read_sql("select...".sort_values(['date'],ascending=True)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Cap = pd.read_sql("select...".sort_values(['date'],ascending=True)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想结束的是: 在此处输入图片说明

我很确定,从我一直阅读的内容来看,我需要将它们分成子图,然后再将它们放在同一行中。虽然不知道如何做到这一点。

plot matplotlib jupyter-notebook

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