小编nev*_*_me的帖子

GeoJSON和MongoDB:将点存储为GeoJSON.Point值得吗?

随着2.3 >位置数据处理和查询,MongoDB 的引入变得更加有用.MongoDB将文档存储为BSON,因此每个文档都包含所有文档字段,这显然可能导致比传统RMDBS更大的数据库.

我曾经将折线和多边形存储为一系列索引点,一个额外的字段代表每一行的顺序(我这样做是为了确保一致性,因为我使用JavaScript,因此点并不总是以正确的顺序存储).它是这样的:

polyline: {
  [
    point: [0,0],
    order: 0
  ],
  [
    point: [0,1],
    order: 1
  ]
}
Run Code Online (Sandbox Code Playgroud)

而现在我使用:

polyline: {
  type: 'LineString',
  coordinates: [
    [0,0],
    [1,0]
  ]
}
Run Code Online (Sandbox Code Playgroud)

我已经看到文档大小有所改善,因为一些折线最多可以有500个点.

但是,我想知道存储我所有Point数据的好处是什么GeoJSON.我对文档大小的增加感到气馁,例如:

loc: [1,0]
Run Code Online (Sandbox Code Playgroud)

比...更好

loc: {
  type: 'Point',
  coordinates: [0,1]
}
Run Code Online (Sandbox Code Playgroud)

因此更容易合作.

我的问题是:

是否更好/建议将点存储为GeoJSON对象而不是2点阵列?

我考虑的是以下内容:

  • 大小限制:我可能有数百万个带位置的文档,这可能会影响集合的大小,可能会影响我的口袋.
  • 一致性:最好处理lng, lat格式中的每组坐标,而不是坚持lat, lng使用点,而前者用于我所有其他位置功能.
  • 方便:如果我抓住一个点,并使用$geoWithin$geoIntersects使用它,在将其用作query参数之前,我不需要先将其转换为GeoJSON .

我不确定的是:

  • 是否loc: [x,y]将在MongoDB上放弃支持
  • 任何索引都有利于2dsphere而不是2d
  • 是否计划 …

database gis wgs84 mongodb

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

Spark:转换DataFrame而不进行聚合

我在网上看了很多问题,但他们似乎没有做我想要实现的目标.

我正在使用带有Scala的Apache Spark 2.0.2.

我有一个数据帧:

+----------+-----+----+----+----+----+----+
|segment_id| val1|val2|val3|val4|val5|val6|
+----------+-----+----+----+----+----+----+
|         1|  100|   0|   0|   0|   0|   0|
|         2|    0|  50|   0|   0|  20|   0|
|         3|    0|   0|   0|   0|   0|   0|
|         4|    0|   0|   0|   0|   0|   0|
+----------+-----+----+----+----+----+----+
Run Code Online (Sandbox Code Playgroud)

我想要转置

+----+-----+----+----+----+
|vals|    1|   2|   3|   4|
+----+-----+----+----+----+
|val1|  100|   0|   0|   0|
|val2|    0|  50|   0|   0|
|val3|    0|   0|   0|   0|
|val4|    0|   0|   0|   0|
|val5|    0|  20|   0|   0|
|val6|    0|   0|   0|   0| …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

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

MongoDB存储一个圆圈

可以在MongoDB上存储一个圆圈吗?我想将圈子存储为集合,并能够将它们编入索引进行搜索.我知道$geoWithin查询是可能的,其中一个指定一个圆并检索点或现在GeoJSON对象,但我希望能够做相反的事情.不知何故,在飞机上绘制一个有多个点的巨型多边形作为一种解决方案似乎并不是很有吸引力,所以我希望有人能有更好的东西.

我在Google上搜索过,但找不到任何东西.我知道存储多边形和线串,这是在MongoDB 2.3>中引入的,对于定义圆的GeoJSON规范也有一些建议.我也在SO上看过这个问题,但是OP从未回来链接到jira,或者如果找到解决方案就更新答案.

mongodb

7
推荐指数
0
解决办法
446
查看次数

更有效地循环 PySpark DataFrame 并创建新列的方法

我正在将一些用 Pandas 编写的代码转换为 PySpark。该代码有很多for循环来根据用户指定的输入创建可变数量的列。

我使用的是 Spark 1.6.x,示例代码如下:

from pyspark.sql import SQLContext
from pyspark.sql import functions as F
import pandas as pd
import numpy as np

# create a Pandas DataFrame, then convert to Spark DataFrame
test = sqlContext.createDataFrame(pd.DataFrame({'val1': np.arange(1,11)}))
Run Code Online (Sandbox Code Playgroud)

这给我留下了

+----+
|val1|
+----+
|   1|
|   2|
|   3|
|   4|
|   5|
|   6|
|   7|
|   8|
|   9|
|  10|
+----+
Run Code Online (Sandbox Code Playgroud)

我在代码中循环了很多,例如下面的:

for i in np.arange(2,6).tolist():
    test = test.withColumn('val_' + str(i), F.lit(i ** 2) + …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

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

Java:来自字符串的protobuf

我将 proto3 与 grpc 一起使用,我正在寻找一种更有效的方法来创建 protobuf 消息,而无需使用构建器并填充它。

如果我有一个字符串(来自 Message.toString()),我可以用该字符串重新创建消息吗?

如果我有消息类型

message TestMessage {
    bool status = 1;
    uint64 created = 2;
    TestNested submessage = 3;


    message TestNested {
        int32 messageNumber = 1;
        Entry entry = 2;
    }

    message Entry {
        int32 id = 1;
        EntryType entryType = 2;
    }

    enum EntryType {
        DEFAULT_ENTRY = 0;
        OTHER_ENTRY = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

和以下输出:

status: true
created: 1534240073415
submessage {
  messageNumber: 3
  entry{
    id: 47957
    entryType: DEFAULT_ENTRY
  }
}
Run Code Online (Sandbox Code Playgroud)

如何创建 TestMessage?我查看了 JavaDoc 以查看是否有一种 …

java protocol-buffers

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

Rust 中的 Azure Active Directory 身份验证

有人有使用 Rust 进行 Microsoft Azure Active Directory 身份验证的经验吗?我在工作中构建了一个支持 LDAP 身份验证的服务,但我们现在需要在不使用 LDAP 的客户端上部署所述应用程序。他们建议我们考虑 Active Directory 联合服务和 Azure Active Directory。

我一直在研究,似乎微软主要为流行语言/框架提供了一个活动目录身份验证库(ADAL),但我找不到任何准系统文档。

有谁知道我可以遵循的资源/在线文档?我正在寻找一些可以使用request或实现的通用 REST API hyper

azure rust azure-active-directory

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

下划线模板:if else语句出错

我解析下划线模板时出错,我不断收到错误说:

Uncaught SyntaxError: Unexpected token else

以下是模板:使用Jade

script#viewLinksTemplate(type="text/template")
    table.table.table-condensed.table-striped
        caption Available links
        thead
            tr
                td link id
                td Name
                td View
                td Edit
                td Remove
        tbody
            {[ _.each(routes, function(route) { ]}

            tr
                td {{ route._id }}
                {[ if (typeof route.name !== 'undefined') { ]}
                td {{ route.name }}
                {[ } ]}
                {[ else { ]}
                td {{ route.stations.start.name }} - {{ route.stations.end.name }}
                {[ }; ]}
                td
                    a.btn.btn-primary(href="/route") View Route
                td
                    a.btn.btn-warning Edit Route
                td
                    a.btn.btn-danger Delete Route
            {[ …
Run Code Online (Sandbox Code Playgroud)

underscore.js

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

如何将整数向量与字节相互转换?

我如何转换Vec<u32>为字节,这样[1, 2, 4]应该给我[1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0], 并获取逆字节并将它们转换回整数向量?

我只知道如何转换[u8; 4]成整数。

rust

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

PySpark 到 Scala:带有 StructType、GenericRowWithSchema 的 UDF 不能转换为 org.apache.spark.sql.Column

我有一些用 PySpark 编写的代码,我正忙着将它转换为 Scala。它一直进展顺利,除了现在我在 Scala 中为用户定义的函数而苦苦挣扎。

Python

from pyspark.sql import SparkSession
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark.sql import functions as F

spark = SparkSession.builder.master('local[*]').getOrCreate()

a = spark.sparkContext.parallelize([(1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,), (10,)]).toDF(["index"]).withColumn("a1", F.lit(1)).withColumn("a2", F.lit(2)).withColumn("a3", F.lit(3))

a = a.select("index", F.struct(*('a' + str(c) for c in range(1, 4))).alias('a'))

a.show()

def a_to_b(a):
    # 1. check if a technical cure exists
    b = {}
    for i in range(1, 4):
        b.update({'b' + str(i): a[i - 1] ** …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark pyspark

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

Redis生菜:发送自定义命令

我在Java上使用tile38.comlettuce.io。我正在尝试根据此处NEARBY fleet FENCE POINT 33.462 -112.268 6000的文档输入链接描述发送自定义命令,但我不知道该怎么做。

我一直CommandType在莴苣中使用,但是找不到发送的方法NEARBY。有人知道我该怎么做吗?

谢谢

java redis

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

下划线:比较猫鼬objectIds失败

我在比较猫鼬ObjectId或它们的String值时遇到麻烦。

我有两个数组,第一个是:

a = [
"50dfb24123c43a501400000e",
"50d1bda330eb531c1400000d",
"50d1bdcf30eb531c1400000f",
"50d1beac30eb531c14000012",
"50dfb26223c43a501400000f"
]
Run Code Online (Sandbox Code Playgroud)

第二个是:

b = [
"50dfb26223c43a501400000f"
]
Run Code Online (Sandbox Code Playgroud)

运行_.intersection(a,b)给我一个空数组,[]而不是中的值b

a和b的值_.pluck来自猫鼬模型返回的结果。我尝试将每个数组值转换为字符串,但仍然得到空数组的相同结果。

我搜索了类似的问题,但是找到的解决方案没有帮助(例如,转换为字符串)。

我有什么想念的吗?我知道问题出在猫鼬的ObjectIds上,因为如果我与上面粘贴的原始数组相交,我将得到正确的结果。

谢谢

mongoose underscore.js

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