我的 S3 存储桶中存储了一个镶木地板数据集,其中包含多个分区文件。我想将其读入我的 pandas 数据帧,但是当我以前没有这样做时,我收到了这个 ArrowInvalid 错误。
有时,这些数据会被之前的 pandas 数据快照覆盖,如下所示:
import pandas as pd # version 1.3.4
# pyarrow version 5.0
df.to_parquet(
f's3a://{bucket_and_prefix}',
storage_options={
"key" : os.getenv("AWS_ACCESS_KEY_ID"),
"secret" : os.getenv("AWS_SECRET_ACCESS_KEY"),
"client_kwargs": {
'verify' : os.getenv('AWS_CA_BUNDLE'),
'endpoint_url': 'https://prd-data.company.com/'
}
},
index=False
)
Run Code Online (Sandbox Code Playgroud)
但是当阅读它时:
df = pd.read_parquet(
f"s3a://{bucket_and_prefix}",
storage_options={
"key" : os.getenv("AWS_ACCESS_KEY_ID"),
"secret" : os.getenv("AWS_SECRET_ACCESS_KEY"),
"client_kwargs": {
'verify' : os.getenv('AWS_CA_BUNDLE'),
'endpoint_url': 'https://prd-data.company.com/'
}
}
)
Run Code Online (Sandbox Code Playgroud)
它失败并出现错误:
ArrowInvalid:GetFileInfo() 产生路径“bucket/folder/data.parquet/year=2021/month=2/abcde.parquet”,位于基本目录“s3://bucket/folder/data.parquet”之外
知道为什么会发生这个 ArrowInvalid 错误以及如何将镶木地板数据读入 pandas 吗?
我想做出如下推论,比如图中灰色虚线代表的属性:
我断言了一个普遍的公理:
(hasTaste some Bitter) SubClassOf: goesWellWith some (hasTaste some Sweet)
Run Code Online (Sandbox Code Playgroud)
其中“bitter”是“Bitter”类型,“sweet”是“Sweet”类型。
我认为 owl:someValuesFrom (或曼彻斯特的“some”)意味着至少必须存在一个这样的关系。然而,在做出大胆的图表断言和一般公理之后,这种情况并没有发生。
我怎样才能做到这一点?
编辑(编辑2,我明白了)
我只是想到了一个可以用的超级房产链!我只是指定
hasTaste o complements o isTasteOf
Run Code Online (Sandbox Code Playgroud)
作为gosWellWith的超级地产链。事实上,通过制作 hasTaste、hasTexture 等...通用 hasTrait 的所有子属性,然后我可以分别用 hasTaste 和 isTraitOf 替换 hasTaste 和 isTasteOf :
hasTrait o complements o isTraitOf
Run Code Online (Sandbox Code Playgroud)
结果捕捉到了彼此互补的食品特性的每一种排列。
我想在 Google 表单中创建一个下拉列表,允许用户从列表项中选择多个选项。之后,我希望将结果输出到逗号分隔列表中的单个单元格。我在此处了解如何在 Google 表格中进行多项选择,但想知道如何在 Google 表单中执行此操作。
我遇到了全局范围被附加包 ( sessionInfo()$otherPkgs) 和命名空间 (loadedNamespaces() )。所以我想在我的脚本开始时清除它们。
在这个线程中解决了一半的问题。这个问题的主要区别在于我想卸载命名空间,而不仅仅是分离包。pacman 也很有趣,但似乎也不起作用。
library(dbplyr)
names(sessionInfo()$otherPkgs)
lapply(paste("package:", names(sessionInfo()$otherPkgs), sep=""),
detach, character.only = TRUE, unload = TRUE)
# `dbplyr` is detached
names(sessionInfo()$otherPkgs)
Run Code Online (Sandbox Code Playgroud)
但是卸载已加载命名空间的类似方法似乎更具挑战性,因为必须首先卸载依赖于其他名称的包。
这是我的尝试:
# Recursive unload which checks for reverse dependencies (children) along the way
# and unloads them first
myunload <- function(pkg) {
# Get child (reverse-dependent) packages that have loaded namespaces
child_pkgs <- unlist(tools::dependsOnPkgs(pkg, which = c("Depends", "Imports"), reverse = T))
child_pkgs <- child_pkgs[which(child_pkgs %in% loadedNamespaces())]
# Recursively …Run Code Online (Sandbox Code Playgroud) 我的公司使用 LDAP 服务器对 Active Directory 进行身份验证。我需要使用它对远程托管的 Shiny 应用程序的用户进行身份验证。我设法在 Python 中进行了身份验证,但需要将其移植到 R:
import ldap
from getpass import getpass
username = "user_name"
password = getpass(prompt='Password: ', stream=None)
ldap_server = "ldap://company-ldap-server:636"
try:
# Create connection with LDAP server and set options
conn = ldap.initialize(ldap_server)
conn.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
conn.set_option(ldap.OPT_X_TLS_NEWCTX, 0)
# Authenticate by trying to connect
conn.simple_bind_s(username, password)
# Retrieve this user's name and email (for authorization)
info = conn.search_s("DC=ad,DC=company,DC=com", ldap.SCOPE_SUBTREE, f"cn={username}*")
conn.unbind_s()
except Exception:
print("ERROR: Could not connect")
Run Code Online (Sandbox Code Playgroud)
这是我在 R 中尝试过的:
library(RCurl)
ldap_server <- …Run Code Online (Sandbox Code Playgroud) 突出显示一个符号,右键单击 --> 查找所有引用(或转到引用)会弹出一个窗格,其中包含我工作区中每个文件中该符号的所有用法。不幸的是,这包括.ipynb_checkpoints/*文件和其他内容,因此很难梳理结果。
按照这个答案,我__pycache__通过添加**/__pycache__到文件成功删除了文件:在我的用户设置中排除。但是在那里添加**/.ipynb_checkpoints/**(和类似的全局变量),也没有添加到“文件:观察者排除”中没有任何作用。还在我的远程 ssh 设置和工作区设置中尝试了此设置。
有人知道如何过滤这些参考文献吗?仅供参考,我在 Windows 10 上运行 VS code 1.62.2,我配置的远程 SSH python 可执行文件是 conda 环境中的 Python 版本 3.7。
python ×3
r ×2
google-forms ×1
ldap ×1
namespaces ×1
owl ×1
package ×1
pandas ×1
parquet ×1
protege ×1
pyarrow ×1
rdf ×1
rdfs ×1
semantic-web ×1
shiny ×1