我有以下包(和工作目录):
WorkingDirectory--
|--MyPackage--
| |--__init__.py
| |--module1.py
| |--module2.py
|
|--notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
在__init__.py我有:
import module1
import module2
Run Code Online (Sandbox Code Playgroud)
如果我尝试将MyPackage导入我的笔记本:
import MyPackage as mp
Run Code Online (Sandbox Code Playgroud)
我会的ModuleNotFoundError: No module named 'module1'.但是如果我在笔记本外部执行脚本,导入工作正常:如果我test.py在同一目录中创建并执行与笔记本中相同的操作,则导入将正常工作.如果我在__init__.py(import MyPackage.module1)中使用完全限定名称,它将在笔记本内部工作.
不同导入行为的原因是什么?
我已经确认笔记本的工作目录了WorkingDirectory.
---更新---------
确切的错误是:
C:\Users\Me\Documents\Working Directory\MyPackage\__init__.py in <module>()
---> 17 import module1
ModuleNotFoundError: No module named 'module1'
Run Code Online (Sandbox Code Playgroud)
我的问题与可能的副本有所不同:
笔记本能够找到包,但只能加载模块.这是从替代推断module1与MyPackage.module1运作良好,并暗示它可能与相关的一个问题PATH.
我进去WorkingDirectory并在那里启动了服务器.工作目录应该是包含我的包的文件夹.
python python-module python-import python-3.x jupyter-notebook
我正在尝试将 200 个 SAS XPT 文件导入到我的 PostgreSQL 数据库中:
engine = create_engine('postgresql://user:pwd@server:5432/dbName')
for file in listdir(dataPath):
name, ext = file.split('.', 1)
with open(join(dataPath, file), 'rb') as f:
xport.to_dataframe(f).to_sql(name, engine, schema='schemaName', if_exists='replace', index=False)
print("Successfully wrote ", file, " to database.")
Run Code Online (Sandbox Code Playgroud)
但是,生成的 SQL 对所有标识符都使用双引号,例如:CREATE TABLE "Y2009"."ACQ_F" ("SEQN" FLOAT(53), "ACD010A" FLOAT(53));。问题是,如果列/表/模式是用引号创建的,那么每次我需要查询它们时,我都必须包含引号,同时使用准确的大小写。
我想去掉引号,但我无法自己编写自定义 SQL,因为这些文件各自具有非常不同的结构。
在 Windows 10 企业版笔记本电脑上,我发现 AppIDSvc 已停止,并且其启动类型设置为手动(触发启动)。当我尝试通过 GUI 将启动类型更改为自动时,即使从提升的 cmd 提示符运行 services.msc,它也会产生错误“访问被拒绝”。
解决此问题的唯一方法是编辑注册表并更改 HKLM\SYSTEM\CurrentControlSet\Services\AppIDSvc 处的 Start=2。
我能够手动启动该服务。另外我已将注册表权限修改为“完全控制”。我尝试从 ISO 重新安装 Windows,但问题仍然存在。不幸的是微软并没有在MSDN和支持论坛上明确回复这个问题。
我正在运行一个非常简单的 Spark(Databricks 上的 2.4.0)ML 脚本:
from pyspark.ml.clustering import LDA
lda = LDA(k=10, maxIter=100).setFeaturesCol('features')
model = lda.fit(dataset)
Run Code Online (Sandbox Code Playgroud)
但收到以下错误:
IllegalArgumentException: 'requirement failed: Column features must be of type equal to one of the following types: [struct<type:tinyint,size:int,indices:array<int>,values:array<double>>, array<double>, array<float>] but was actually of type array<double>.'
Run Code Online (Sandbox Code Playgroud)
为什么我array<double>的不是array<double>?
这是架构:
root
|-- BagOfWords: struct (nullable = true)
| |-- indices: array (nullable = true)
| | |-- element: long (containsNull = true)
| |-- size: long (nullable = true)
| |-- type: …Run Code Online (Sandbox Code Playgroud) 我想计算这个表达式:
(1 + 1 / math.inf) ** math.inf,
Run Code Online (Sandbox Code Playgroud)
应计算为e。但是Python返回1。为什么呢?
=====更新========
我在这里要做的是从用户输入的APR(年度百分比)中得出有效的年利率。
def get_EAR(APR, conversion_times_per_year = 1):
return (1 + APR / conversion_times) ** conversion_times - 1
Run Code Online (Sandbox Code Playgroud)
我希望此表达式也适用于连续复利。是的,我知道我可以编写if语句来区分正常情况下的连续复合(然后可以e直接使用常量),但是我最好选择一种集成方式。
l1 <- list(a = 'FirstComponent', b= 'SecondComponent')
Run Code Online (Sandbox Code Playgroud)
要将第一个组件重命名a为cI ,我可以这样做:
names(l1) <- c('c', 'b')
Run Code Online (Sandbox Code Playgroud)
或这个:
names(l1)[1] <- c('c')
Run Code Online (Sandbox Code Playgroud)
但不是这个:
names(l1[1]) <- c('c')
Run Code Online (Sandbox Code Playgroud)
这不是:
names(l1[[1]]) <- c('c')
Run Code Online (Sandbox Code Playgroud)
为什么第三和第四个代码示例不起作用?他们还尝试重命名一个R对象l1[1]和l1[[1]].现场背后发生了什么?
=========以下是原始问题的一部分===========
R文档:可以通过一般规则更新名称属性的一部分:参见示例.这是有效的,因为那里的表达式被评估为
z <- "names<-"(z, "[<-"(names(z), 3, "c2")).
names(z)in 的返回值"[<-"(names(z), 3, "c2")作为参数传递给下一个函数,即"[<-".
我在 PowerBI 中有两个来自 Azure SQL 的表,使用直接查询:
EMP(empID PK)contactInfo(contactID PK, empID FK, contactDetail)从EMP.empID到有明显的一对多关系contactInfo.empID。外键约束已成功实施。
但是,我只能在 PowerBI 中创建多对一关系 ( contactInfo.empIDto EMP.empID)。如果我尝试相反的方法,PowerBI 总是会自动将关系转换为多对一(通过交换 from 和 to 列),这会阻止我创建视觉效果。PowerBI 是否认为两者是等价的?
更新:
我所做的只是在 PowerBI 中创建一个表,显示这两个表的连接结果。外键约束是contactInfo.empID REFERENCES EMP.empID,它是多对一的。我想这应该不是问题,因为我可以使用 SQL 直接查询连接。
还请建议我是否应该在相反的方向创建外键。
有关创建视觉失败的更多信息
确切的错误消息是:
Can't display the data because Power BI can't determine
the relationship between two or more fields.
Version: 2.43.4647.541 (PBIDesktop)
Run Code Online (Sandbox Code Playgroud)
要重现错误:
数据库架构如下:
我想要的是 PowerBI 中的一个表,显示员工的联系方式和销售信息,即加入所有四个表。当表视觉对象的 VALUES 包含“empName、contactDetail、contactType、productName”时会发生错误,但是,如果我只包含“empName、contactDetail、contactType”或“empName、productName”,则不会发生错误。起初我以为问题可能出在contactInfo和emp之间的关系上,但现在似乎更复杂了。我猜这可能是由多个一对多关系引起的?
python ×3
python-3.x ×3
apache-spark ×1
applocker ×1
calculus ×1
foreign-keys ×1
function ×1
math ×1
postgresql ×1
powerbi ×1
pyspark ×1
r ×1
registry ×1
relationship ×1
return-value ×1
sqlalchemy ×1
windows ×1
windows-10 ×1