小编fun*_*iki的帖子

执行“groupBy()”时,多个 pyspark“window()”调用显示错误

这个问题是这个答案的后续问题。当出现以下情况时 Spark 将显示错误:

# Group results in 12 second windows of "foo", then by integer buckets of 2 for "bar"
fooWindow = window(col("foo"), "12 seconds"))

# A sub bucket that contains values in [0,2), [2,4), [4,6]...
barWindow = window(col("bar").cast("timestamp"), "2 seconds").cast("struct<start:bigint,end:bigint>")

results = df.groupBy(fooWindow, barWindow).count()
Run Code Online (Sandbox Code Playgroud)

错误是:

“多个时间窗口表达式将导致行的笛卡尔积,因此目前不支持它们。”

有什么方法可以实现所需的行为吗?

python apache-spark apache-spark-sql pyspark

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

带有绝对路径的LoadLibrary返回不正确的HMODULE且没有错误

我有一些试图加载Dll的代码.

我遇到了一个奇怪的'错误'.当尝试从绝对路径加载dll时,我得到一个非空HMODULE,它在GetLastError调用时没有提供Windows错误代码(即GetLastError根据msdn返回'0'或成功).在调用此dll中的函数时,我得到的值不正确.

这种行为很奇怪,因为相反,我使用SetCurrentDirectory将当前目录切换为当前dll的目录,并使用对LoadLibrary的相对路径调用,我得到正确的值.

这是一个描述情况的片段:

使用绝对路径:

std::string libLoc = get_dll_location(); // Get the directory of this dll
HMODULE myDLL = LoadLibraryA(libLoc.c_str()); // Non-null value
DWORD lastError = GetLastError(); // returns 0

MyObj * value = UseDLL(myDLL); // bad value
Run Code Online (Sandbox Code Playgroud)

使用相对路径:

SetCurrentDirectory("c:\\path\\containing\\dll\\"); // hard coded path to dll's folder
HMODULE myDLL = LoadLibrary("myDll.dll");  // Non-null value
MyObj * value = UseDLL(myDLL);  // Good value
Run Code Online (Sandbox Code Playgroud)

我真的想避免使用SetCurrentDirectory,因为使用这个Dll的应用程序可能是多线程的,并且要求目录保持不变.

任何关于这个问题的见解将不胜感激.希望这只是我的一个小错误.

更新:使用LoadLibraryEx似乎是不可能的,因为LOAD_LIBRARY_SEARCH_*标志似乎不可用(我已经尝试安装KB2533623更新).

c++ dll winapi loadlibrary absolute-path

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

SQLAlchemy - Session.query 循环中的 Session.commit 重置对象 __dict__

当迭代session.Query对象并调用更新时,我注意到返回的对象不再__dict__填充它们的's 。

例如

foos = session.query(Foo)
for foo in foos:
    print "{}".format(foo.__dict__)
    foo.somefield = "somevalue"
    session.add(foo)
    session.commit()  # The next print statement won't show anything
Run Code Online (Sandbox Code Playgroud)

但是,如果foo在迭代期间读取了 中的任何字段,则所有__dict__字段都会被解析。

例如

foos = session.query(Foo)
for foo in foos:
    # Reading any of the fields, causes all of the fields to be resolved.
    foo.somefield
    print "{}".format(foo.__dict__)
    foo.somefield = "somevalue"
    session.add(foo)
    session.commit()  # The next print statement won't show anything
Run Code Online (Sandbox Code Playgroud)

有没有办法让这些值出现__dict__而无需先阅读它们?

python sqlalchemy

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

Heroku Foreman退出Express.js bodyParser()调用

当运行工头开始时,我看到以下消息

> foreman start
20:38:55 web.1  | started with pid 3896
20:38:55 web.1  | Development
20:38:56 web.1  | connect.multipart() will be removed in connect 3.0
20:38:56 web.1  | exited with code 1
20:38:56 system | sending SIGKILL to all processes
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会这样,因为运行node server.js似乎没有终止服务器.

以下代码段似乎导致应用程序以退出代码1终止:

var app = express();
app.configure(function()
{
    // More config things above
    app.use(express.bodyParser());   // This line is causing the issue
    // More config things below
}
Run Code Online (Sandbox Code Playgroud)

以上是使用Express.js框架的代码.删除对express.bodyParser()的上述调用允许服务器运行(通过foreman).问题是,我需要身体解析器模块来解析我传入的get/posts请求.

对此问题的任何帮助将不胜感激.

javascript heroku node.js express foreman

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

使用解析服务器进行数字身份验证

在建设一个小型Android应用程序,我决定尝试位数用手机号码登录并解析用于后端.

我如何使用Parse服务器验证Digits会话?

我从下面的例子开始,虽然我不确定这是否"正确"(改编自这篇文章).

Android客户端:

  1. 从数字请求auth(oauth?)标记和用户标识

    一个.发送数字密钥和秘密,检索对象

  2. 使用Parse验证此会话

    一个.发送电话号码,身份验证令牌和用户ID

    湾 如果授权有效,则使用用户信息接收确认

解析:

  1. Auth端点采用电话号码,身份验证令牌和用户ID

    一个.使用twitter端点验证

    湾 将身份验证令牌哈希和用户ID插入Sessions表(将来的请求将ping此表,而不是twitter)

    C.向客户退回确认

以上是有道理的,但是使用Github登录Parse示例似乎做了一些略微不同的事情.使用Parse,对第三方的初始请求来自Parse服务器,而不是客户端.

Github需要发送'state'参数,这似乎是Parse示例从服务器发送其初始请求的原因,而Digits不需要这样的参数.这会使Digits身份验证的安全性降低吗?有没有办法让这个过程更安全/更正确?

authentication android oauth parse-platform twitter-fabric

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

PySpark - 如何删除 csv 输出中的科学记数法

我有一个火花聚合,我想将结果输出到 csv,但我发现火花总是以科学记数法输出大量小数。我已经尝试过这个问题中提到的解决方案,但也没有奏效。

预期输出:

foo,avg(bar)
a,0.0000002
b,0.0000001
Run Code Online (Sandbox Code Playgroud)

实际输出:

foo,avg(bar)
a,2.0E-7
b,1.0E-7
Run Code Online (Sandbox Code Playgroud)

请参阅下面的示例:

foo,avg(bar)
a,0.0000002
b,0.0000001
Run Code Online (Sandbox Code Playgroud)

在 pyspark 外壳中:

foo,avg(bar)
a,2.0E-7
b,1.0E-7
Run Code Online (Sandbox Code Playgroud)

python scientific-notation apache-spark pyspark

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