当前对数据流使用的凭据/配置有些困惑...
从我的实验来看,数据流似乎总是使用默认配置而不是活动配置。那是对的吗?(例如,gcloud config在我的活动配置位于项目B上的情况下,如果我具有项目A的默认配置,似乎我的数据流作业将始终提交到项目A。同样,这种方式似乎数据流作业正在忽略什么是设置为options.setProject(),因此想知道何时options.getProject()再次使用数据流...?)
还想知道我是否可以通过自定义配置提交数据流作业,例如我想在同一运行中将多个作业提交到具有不同凭据的不同项目(而无需手动更改gcloud config)?
顺便说一句,我正在数据流服务云平台上运行数据流作业,但如果有帮助,请从非gce Cloudservices帐户提交该作业。
我想用 GnuPG 加密一个文件
gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --encrypt=/path/to/file --output=/path/to/output_file
Run Code Online (Sandbox Code Playgroud)
然而,这个命令似乎永远挂起并且永远不会返回。有趣的是,在我中断进程后,确实/path/to/output_file创建了 ,但是写入那里的字节比原始有效负载大得多(例如,我/path/to/file只有 5 个字节,但结果写入了近 200 个字节/path/to/output_file)。
一定有什么问题,但我真的想不通是什么。
我已经提前导入了BlahBlahby的密钥gpg --import key.asc。GnuPG 1 和 GnuPG 2 都会发生这种情况。
我有一个程序需要生成一个数据帧,它会在上面运行类似的东西
Select Col1, Col2...
orderBy(ColX) limit(N)
Run Code Online (Sandbox Code Playgroud)
但是,当我最后收集数据时,我发现如果我取足够大的top N,它会导致驱动程序OOM
另外一个观察是,如果我只做排序和顶部,这个问题就不会发生。因此,只有在同时存在 sort 和 top 时才会发生这种情况。
我想知道为什么会发生这种情况?特别是,这两种转换组合背后的真正原因是什么?spark将如何评估带有排序和限制的查询以及下面相应的执行计划是什么?
也只是好奇数据帧和 RDD 之间的火花处理排序和顶部不同吗?
编辑,对不起,我不是说收集,我原来的意思是当我调用任何操作来实现数据时,无论它是收集(或任何将数据发送回驱动程序的操作)还是不是(所以问题肯定是不在输出尺寸上)