小编Sot*_*her的帖子

如何在sklearn DistanceMetrics中使用马哈拉诺比斯距离?

也许这是基本的,但我找不到使用mahalanobis距离的好例子sklearn.

我甚至无法获得这样的指标:

from sklearn.neighbors import DistanceMetric
DistanceMetric.get_metric('mahalanobis')
Run Code Online (Sandbox Code Playgroud)

这会引发错误: TypeError: 0-dimensional array given. Array must be at least two-dimensional.

但是,我甚至无法得到一个数组:

DistanceMetric.get_metric('mahalanobis', [[0.5],[0.7]])
Run Code Online (Sandbox Code Playgroud)

抛出:

TypeError: get_metric() takes exactly 1 positional argument (2 given)
Run Code Online (Sandbox Code Playgroud)

我在这里这里检查了文档.但是,我没有看到它期待什么类型的论点.
有没有我可以看到使用马哈拉诺比斯距离的例子?

python arrays scikit-learn mahalanobis

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

如何知道PySpark应用程序的部署模式?

我正在尝试修复内存不足的问题,我想知道是否需要spark-defaults.conf在spark home文件夹中的默认配置文件()中更改这些设置.或者,如果我可以在代码中设置它们.

我看到了这个问题PySpark:java.lang.OutofMemoryError:Java堆空间,它说它取决于我是否在client模式下运行.我在集群上运行spark并使用独立监控它.

但是,我怎么弄清楚我是否在client模式下运行spark ?

cluster-computing apache-spark pyspark

7
推荐指数
2
解决办法
7750
查看次数

如何在扩展了sympy中的Poly类的类中添加参数?

我正在尝试创建一个名为Sympy PolyExtPoly类的扩展的类。而且,它有自己的__init__方法。但是问题在于,当它通过__new__继承的Poly类中的方法时,我添加到__init__方法中的额外参数将被解释为*gens参数的一部分。有没有解决这个问题的优雅方法?

以下是重现该错误的方法:

class PolyExt(Poly):

    def __init__(self, expression, symb1, symb2):
        self.symb1 = symb1
        self.symb2 = symb2
        super(PolyExt, self).__init__(expression)

x = symbols('x')
y = symbols('y')

PolyExt(x+y, [y], [x])
Run Code Online (Sandbox Code Playgroud)

并且,Poly该类如下所示:

class Poly(Expr):
    """Generic class for representing polynomial expressions."""

    __slots__ = ['rep', 'gens']

    is_commutative = True
    is_Poly = True

    def __new__(cls, rep, *gens, **args):
        """Create a new polynomial instance out of something useful. """
        opt = options.build_options(gens, args) …
Run Code Online (Sandbox Code Playgroud)

python oop sympy python-2.7

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

查询以匹配包含点的多边形

我的mongodb集合中的文档如下所示:

{
"_id" : ObjectId("5562d6831683523f449e7d85")
"geometry" : {
"type" : "Polygon",
"coordinates" : 
    [[
    [-122.4,37.81],
    [-132.9, 39.9],
    [-122.28, 37.80],
    [-124.18, 39.81]
    ]]
}}
Run Code Online (Sandbox Code Playgroud)

我有一个点(长对),我将其称为xy。我需要查看文档的坐标是否创建了一个多边形,以便这些坐标位于该多边形内。

因此,我当然需要计算描述多边形等各边的线,然后查看该点的坐标是否在其中。但是,现在,让我们假设我们要查询的文档具有整个数组的最大和最小经度值,xy在其中。

这是我尝试查询此内容的方法:

db.<collection-name>.find(
    {'geometry.coordinates':
        {$elemMatch:
            {
                [{$gt:-122.1}, {$lt:-122.0 }], [{$gt: 37.89 },{$lt: 37.91}]
            }
        }
    }
)
Run Code Online (Sandbox Code Playgroud)

但是,结果是:Unexpected token [。我试图按照这里的例子。

我如何查询这样的数组,其中文档中数组的每个元素都有条件?谢谢。

geolocation mongodb geojson mongodb-query

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

分区数如何影响`wholeTextFiles`和`textFiles`?

在火花中,我理解如何使用wholeTextFilestextFiles,但我不知道何时使用.这是我目前所知道的:

  • 处理不是按行分割的文件时,应该使用wholeTextFiles,否则使用textFiles.

我会在默认情况下,想wholeTextFilestextFiles按文件内容的分区,并通过线,分别.但是,它们都允许您更改参数minPartitions.

那么,更改分区如何影响这些处理的方式呢?

例如,假设我有一个包含100行的非常大的文件.处理它wholeTextFiles与100个parti 之间的区别,并textFile使用默认的parition 100将其处理为(逐行分区).

这些有什么区别?

python apache-spark pyspark

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

什么时候文件"可拆分"?

当我使用spark时,我有时会在HIVE表中遇到一个巨大的文件,我有时会尝试在HIVE表中处理许多较小的文件.

我知道在调整spark工作时,它的工作原理取决于文件是否可拆分.在cloudera的这个页面中,它说我们应该知道这些文件是否可以拆分:

...例如,如果您的数据到达几个大的不可分割的文件......

  1. 我怎么知道我的文件是否可拆分?

  2. 如果文件是可拆分的,我如何知道要使用的分区数?

  3. 如果我正在尝试编写一段可以在任何HIVE表上工作的代码,即上述两种情况中的任何一种,那么在更多分区方面犯错是否更好?

hadoop file-format hive hdfs apache-spark

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

如何在spark数据框中强制重新分区?

我有许多火花数据帧,我需要在其中执行以下操作:

1) load a single spark dataframe
2) select rows from it
3) merge it with all of the previous spark dataframes
Run Code Online (Sandbox Code Playgroud)

现在,上述每个操作都需要不同数量的分区.选择行需要许多分区,例如100个分区.合并需要很少的分区,比如1​​0个分区.

所以,我真的希望它像这样工作:

1) load a single spark dataframe
1.5) repartition into 100 partitions
2) select rows from it
2.5) repartition into 10 partitions
3) merge it with all of the previous spark dataframes
Run Code Online (Sandbox Code Playgroud)

现在,如何强制它在步骤1和2之间以及2到3之间重新分配?

我知道,当我打电话给data = data.repartition(7)它时,它会被懒惰地评估,所以它只是在实际保存时重新分配.

所以,我一直这样做:

1) load a single spark dataframe
1.5) repartition into 100 partitions
1.75) `df.count()` *just* to force materialization
2) …
Run Code Online (Sandbox Code Playgroud)

python distributed apache-spark pyspark

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

如何在vi中以可视模式将光标跳转到特定行?

当我使用时,vi我将使用跳转到新的一行:<line number>.然后当我尝试突出显示某些内容时,我将进入可视模式,并尝试相同的命令:<line number>.但它没有跳到我问的行号,而是做了一些奇怪的行为.在可视模式下如何跳转到特定线?

vi vim

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

如何解决pyspark中的pickle错误?

我正在迭代文件以收集有关字典中的列和行中的值的信息.我有以下代码在本地工作:

def search_nulls(file_name):
    separator = ','
    nulls_dict = {}
    fp = open(file_name,'r')
    null_cols = {}
    lines = fp.readlines()

    for n,line in enumerate(lines):
        line = line.split(separator)
        for m,data in enumerate(line):
            data = data.strip('\n').strip('\r')
            if str(m) not in null_cols:
                null_cols[str(m)] = defaultdict(lambda: 0)
            if len(data) <= 4:
                null_cols[str(m)][str(data)] = null_cols[str(m)][str(data)] + 1

    return null_cols


files_to_process = ['tempfile.csv']
results = map(lambda file: search_nulls(file), files_to_process)
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常没有火花.我评论上面的最后两行,我尝试使用spark,因为这是需要运行分布式的原型:

os.environ['SPARK_HOME'] = <path_to_spark_folder>
conf = SparkConf().setAppName("search_files").setMaster('local')

sc = SparkContext(conf=conf)

objects = sc.parallelize(files_to_process)
resulting_object = \
    objects.map(lambda file_object: find_nulls(file_object)) …
Run Code Online (Sandbox Code Playgroud)

python unicode dictionary apache-spark pyspark

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

在HIVE中创建与另一个表相同列的表?

我想从hive中另一个表的一些元数据创建表.我正在使用蜂巢.

我从这个问题中知道,可以通过INFORMATION_SCHEMA.COLUMNSsql 从表中检索元数据:

是否HIVE具有对表的元数据的类似访问权限,以允许我使用另一个表的列创建表?基本上,我正在复制一个没有所有元组的表.

这是我迄今为止最好的事情:

create table <table_name>( (select <table_name> from INFORMATION_SCHEMA.COLUMNS)) row format delimited fields by '|';

sql hadoop hive

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