小编Bra*_*ndt的帖子

如何在Python中将JSON文件的目录加载到Apache Spark中

我对Apache Spark比较陌生,我想从多个JSON文件中保存的字典列表中创建一个Python的RDD(每个都是gzip并包含一个字典列表).然后,粗略地说,生成的RDD将所有字典列表合并为单个字典列表.我在文档(https://spark.apache.org/docs/1.2.0/api/python/pyspark.html)中找不到这个,但如果我错过了,请告诉我.

到目前为止,我尝试读取JSON文件并在Python中创建组合列表,然后使用sc.parallelize(),但是整个数据集太大而无法放入内存中,因此这不是一个实用的解决方案.看起来Spark会有一种处理这个用例的聪明方法,但我并不知道.

如何在Python中创建包含所有JSON文件中的列表的单个RDD?

我还要提一下,我不想使用Spark SQL.如果可能的话,我想使用map,filter等函数.

python json dictionary apache-spark

8
推荐指数
1
解决办法
1万
查看次数

Pymongo 比 mongo shell 慢得多?

我对 mongodb 比较陌生,并且在 pymongo 中遇到了性能问题。我有一个 50 GB(未压缩)和 20 GB(通过 WiredTiger 压缩)的集合,其中包含大约 3900 万个文档。在索引字段上查询它会得到大约 125,000 个文档和 150 MB 未压缩的结果。当我在 mongo shell 中执行以下操作时,大约需要一秒钟。

var result = db.my_collection.find(my_query).toArray()
Run Code Online (Sandbox Code Playgroud)

但是,当我在 pymongo 中做同样的事情时,它需要超过 7 秒。

db = pymongo.MongoClient()['my_db']
result = list(db['my_collection'].find(my_query)) 
Run Code Online (Sandbox Code Playgroud)

一些额外的信息:

  • 我使用的是 Ubuntu 14.04、python 2.7.6、pymongo 3.2 和 mongo 3.2。

  • 我认为我的 pymongo 配置为使用 C,因为我安装了 python-dev 并且 pymongo.has_c() 和 bson.has_c() 都显示为 True。

  • 一切都在本地运行。

我发现很难相信 pymongo 比 mongo shell 慢 7 倍。我错过了什么?

python shell mongodb pymongo

7
推荐指数
1
解决办法
1102
查看次数

使用 LogNorm() 时颜色条不显示值

我正在尝试绘制等高线图,其中等高线水平按值的对数缩放。但是,颜色栏在颜色旁边没有显示足够的值。这是一个简单的例子。

import numpy as N
import matplotlib as M
import matplotlib.pyplot as PLT

# Set up a simple function to plot 
values = N.empty((10,10))
for xi in range(10):
    for yi in range(10):
        values[xi,yi] = N.exp(xi*yi/10. - 1)

levels = N.logspace(-1, 4, 10)
log_norm = M.colors.LogNorm() 
# Currently not used - linear scaling
linear_norm = M.colors.Normalize()

# Plot the function using the indices as the x and y axes
PLT.contourf(values, norm=log_norm, levels=levels)
PLT.colorbar()
Run Code Online (Sandbox Code Playgroud)

如果您在轮廓函数调用中将 log_norm 切换为 Linear_norm,您将看到颜色条确实有值。当然,使用 Linear_norm 意味着颜色是线性缩放的,并且该函数的轮廓分布不均匀。

我正在 Mac …

python numpy matplotlib contour colorbar

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