我有一个 hadoop 集群,我正在使用 Numpy、SciPy 和 Pandas 对它进行数据分析。我希望能够使用命令的“--file”参数将我的 hadoop 作业作为 zip/tar 文件提交。该 zip 文件应该包含我的 python 程序需要执行的所有内容,这样无论我的脚本在集群中的哪个节点上执行,我都不会在运行时遇到 ImportError。
由于公司政策,在每个节点上安装这些库并不完全可行,尤其是对于探索性/敏捷开发。不过,我确实安装了 pip 和 virtualenv 来根据需要创建沙箱。
我看过zipimport和python 打包,但似乎都不能满足我的需求/我在使用这些工具时遇到了困难。
有没有人有幸做到这一点?我似乎无法在网上找到任何成功案例。
谢谢!
我正在与 API 交互并取回 JSON 数据。在 JSON 对象的顶层,我有“常规”数据,但某些字段具有更高级的结构:
{
"foo": 1,
"bar": "string",
"spam": {
"egg":"green",
"ham":"yum",
"ran": {
"out_of":"fake_words"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要将这些高级结构(“垃圾邮件”)保留为有效的 JSON
我正在使用请求获取数据并将其加载到 Pandas DataFrame 中,如下所示:
api_result = api.get_data().json() #the json output of the Request object
df = read_json(json.dumps(api_result))
Run Code Online (Sandbox Code Playgroud)
这给了我一个很好的三列数据帧,正如我所期望的(这也是我想要的)。问题来自于字符串:
foo bar spam
1 'string' {'egg':'green','ham':'yum','ran':{'out_of':'fake_words'}
Run Code Online (Sandbox Code Playgroud)
Pandas 或 Python 已将我的数据中的所有字符串更改为单引号 (') 而不是有效的 JSON 双引号 (")。这种行为破坏了所有期望有效 JSON 对象的下游处理,因为所有引号现在都是单引号。
编辑--> 我的程序写出一个 csv,该 csv 被摄取到数据库表中,期望在许多字段中使用有效的 JSON。许多其他过程使用此表进行进一步分析和数据准备。<--编辑
有没有办法告诉 Pandas/Python 停止将我的字符串从双引号更改为单引号?我知道一般的让步是单引号更像 Pythonic,但现在它们正在毁掉我的一切。
谢谢!