我发现
final = ta.join(tb, on=['ID'], how='left')
左右两侧都有一个同名的“ID”列。
我得到了这个
final = ta.join(tb, ta.leftColName == tb.rightColName, how='left')
左右列名称在运行时之前是已知的,因此可以对列名称进行硬编码。
但是,如果 on 谓词的左右列名称不同并且是通过配置变量计算/导出的,该怎么办?例如:
1) leftColName = 'leftKey'
2) rightColName = 'rightKey'
3) final = ta.join(tb, ta.leftColname == tb.rightColname, how='left')
leftColName在第 3 行可以被硬编码和执行之前, &的值rightColName是未知的。
这不起作用,因为我发现运行时可能会间歇性地混淆/迷失是指还是rightColName指tatb
final = ta.join(tb, f.col(leftColName) == f.col(rightColName), 'left')
Scala 似乎有一个工具可以实现这一点。
任何人都可以建议一种更好的方法来构建Promises的使用吗?我对Promises很新,我想知道我是否遗漏了一些关于如何构建这一系列事件的东西.
注意:我打算不在这里使用rej [ect].你看到guatanrees只有res [olve]返回.这意味着返回的代码只需要一个路径来处理返回的值.因此返回的代码在它的流程中更简单.
如果您不认识它,可能会有所帮助,这取自我创建的模块.把它想象成道.
module.exports = {
dbConnection: function () {
return { user: 'sa', password: 'mypassword', server: 'localhost', database: 'mydb' };
},
CanIConnectToTheDB: function () {
return new Promise(function (res, rej) {
var sql = require('mssql');
var myDao = require('./myDao');
var cn = new sql.ConnectionPool(myDao.dbConnection());
cn.connect().then(function () {
var req = new sql.Request(cn);
var qry = 'select serverproperty(\'productversion\') as \'rs\'';
req.query(qry)
.then(function (rs) {
qry = 'select isnull(object_id(\'SomeObjectIKnowExists\'), -1)';
req.query(qry)
.then(function (rss) {
res(' CONNECTED// MASTER DB SUCCESS// …Run Code Online (Sandbox Code Playgroud) 我的智慧结束了.找不到任何有助于此的内容.
dta = {'type': "", 'content': ""}
print dta
Run Code Online (Sandbox Code Playgroud)
>>>{'content': '', 'type': ''}
setattr(dta, 'type', "Steve")
Run Code Online (Sandbox Code Playgroud)
>>>AttributeError: 'dict' object has no attribute 'type'
apache-spark ×1
javascript ×1
node.js ×1
promise ×1
pyspark ×1
python ×1
setattr ×1
setattribute ×1