我正在尝试使用数据帧列 ORIG 上的以下算法对 python 3.6 pandas 数据帧列的每个值进行散列:
HK_ORIG = base64.b64encode(hashlib.sha1(str(df.ORIG).encode("UTF-8")).digest())
Run Code Online (Sandbox Code Playgroud)
但是,上面提到的代码不会对列的每个值进行哈希处理,因此,为了对 df-column ORIG 的每个值进行哈希处理,我需要使用 apply 函数。不幸的是,我似乎还不够好,无法完成这项工作。
我想它看起来像下面的代码:
df["HK_ORIG"] = str(df['ORIG']).encode("UTF-8")).apply(hashlib.sha1)
Run Code Online (Sandbox Code Playgroud)
我非常期待您的回答!提前谢谢了!
我需要列出认知用户池的所有用户。有没有办法返回用户池的所有用户?
boto3 - 客户端的 list_users-function 就像下面的代码一样只返回 60 个用户而不是所有用户。
client = boto3.client('cognito-idp',
region_name=aws_region,
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
config=config)
print('Setup client')
response = client.list_users(
UserPoolId=userpool_id,
AttributesToGet=[
'email','sub'
]
)
Run Code Online (Sandbox Code Playgroud)
预期结果是包含 cognito 用户组的所有用户的 json-objects 列表
我的代码首先将行写入 CSV 中io.StringIO():
fileBuffer = io.StringIO()
# write header
header_writer = csv.DictWriter(fileBuffer, fieldnames=columnNames)
header_writer.writeheader()
# write lines
writer = csv.writer(fileBuffer, delimiter=',')
for line in data:
line_dec = line.decode('ISO-8859-1')
# print([line_dec])
writer.writerow([line_dec])
Run Code Online (Sandbox Code Playgroud)
以下代码还打印所有预期行:
$print(fileBuffer.getvalue()) # -> prints all expected rows
Run Code Online (Sandbox Code Playgroud)
我还可以使用 pysftp 成功连接到 SFTP 服务器,甚至在使用 pysftp 时,代码也成功返回所有预期行:
with pysftp.Connection(host, username=user, password=pw, cnopts=cnopts) as sftp:
print('sucessfully connected to {} via Port 22'.format(host))
print(fileBuffer.getvalue()) # -> prints all expected rows
sftp.putfo(fileBuffer, file2BeSavedAs) # -> no rows put on FTP Server
Run Code Online (Sandbox Code Playgroud)
实际问题来了: …
我想使用 pyspark 从 s3 (s3://test-bucket/testkey.csv) 读取一个 csv 文件作为火花数据帧。我的集群在 spark 2.4 上运行。
我不需要考虑任何 infer_schema、凭据 aot。并且 csv 文件不会作为胶水表被抓取。
您能否在此处粘贴基于 spark 会话的 pyspark 代码并将其转换为 csv 到 spark 数据帧?
非常感谢提前和最好的问候
csv amazon-s3 amazon-web-services pyspark pyspark-dataframes
为了列出认知用户池的所有用户,我想到了使用 boto3 的client.list_users()- 功能,包括分页。
不过,如果我打电话print(client.can_paginate('list_users')),False返回,因为该功能list_users()是不分页。
是否有替代方法可以列出认知用户池的所有用户而不过滤那些已经被选中的用户?
我当前没有分页的代码如下所示:
client = boto3.client('cognito-idp',
region_name=aws_region,
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
config=config)
response = client.list_users(
UserPoolId=userpool_id,
AttributesToGet=[
'email','sub'
]
)
Run Code Online (Sandbox Code Playgroud)
提前谢谢了!