小编kar*_*son的帖子

解析1000年之前的日期

请考虑以下示例:

from datetime import datetime


FMT = "%Y-%m-%dT%H:%M:%S"

original_date = datetime(1,1,1)

s = original_date.strftime(FMT)  # This is '1-01-01T00:00:00'
Run Code Online (Sandbox Code Playgroud)

当我现在尝试将该字符串解析回一个日期时间时,我首先使用我用来序列化它的确切格式,ValueError向我抛出一个:

datetime.strptime(s, FMT)
Run Code Online (Sandbox Code Playgroud)

ValueError:时间数据'1-01-01T00:00:00'与格式'%Y-%m-%dT%H:%M:%S'不匹配

然而

datetime.strptime('0001-01-01T00:00:00', FMT)
Run Code Online (Sandbox Code Playgroud)

按预期工作.我原strptime以为能够处理任何strftime产品.我一直认为这些功能是彼此相反的.

为什么不会original_date.strftime(FMT)导致零填充年份?这种不一致有什么理由吗?

python datetime python-3.x

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

使用HiveContext的多个Spark应用程序

有两个单独的pyspark应用程序实例化一个HiveContext代替一个SQLContext让两个应用程序中的一个失败并出现错误:

例外:("你必须使用Hive构建Spark.导出'SPARK_HIVE = true'并运行build/sbt程序集",Py4JJavaError(调用None.org.apache.spark.sql.hive.HiveContext时发生错误.\n ',JavaObject id = o34039))

另一个应用程序成功终止.

我正在使用Python API中的Spark 1.6,并希望使用一些Dataframe只支持HiveContext(例如collect_set)的函数.我在1.5.2及更早版本中遇到了同样的问题.

这足以重现:

import time
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext

conf = SparkConf()
sc = SparkContext(conf=conf)
sq = HiveContext(sc)

data_source = '/tmp/data.parquet'
df = sq.read.parquet(data_source)
time.sleep(60)
Run Code Online (Sandbox Code Playgroud)

sleep只是为了在我启动其他进程时保持脚本运行.

如果我运行此脚本的两个实例,则在读取镶木地板文件时会显示上述错误.当我更换HiveContextSQLContext一切都很好.

有谁知道那是为什么?

hive apache-spark pyspark

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

从C扩展返回numpy数组

为了学习新东西,我目前正在尝试重新实现C中的numpy.mean()函数.它应该采用3D数组并返回一个2D数组,其中元素的平均值沿着轴0.我设法计算所有值的均值,但不知道如何将新数组返回给Python.

我的代码到目前为止:

#include <Python.h>
#include <numpy/arrayobject.h>

// Actual magic here:
static PyObject*
myexts_std(PyObject *self, PyObject *args)
{
    PyArrayObject *input=NULL;
    int i, j, k, x, y, z, dims[2];
    double out = 0.0; 

    if (!PyArg_ParseTuple(args, "O!", &PyArray_Type, &input))
        return NULL;

    x = input->dimensions[0];
    y = input->dimensions[1];
    z = input->dimensions[2];

    for(k=0;k<z;k++){
        for(j=0;j<y;j++){
            for(i=0;i < x; i++){
                out += *(double*)(input->data + i*input->strides[0] 
+j*input->strides[1] + k*input->strides[2]);
            }
        }
    }
    out /= x*y*z;
    return Py_BuildValue("f", out);
}

// Methods table - this defines the interface to …
Run Code Online (Sandbox Code Playgroud)

c python numpy python-c-api

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

从同一个源加入两个DataFrame

我正在使用pyspark(Apache Spark)的DataFrame API,并遇到以下问题:

当我连接两个源自相同源DataFrame的DataFrame时,生成的DF将爆炸到大量行.一个简单的例子:

n从磁盘加载一个DataFrame :

df = sql_context.parquetFile('data.parquet')
Run Code Online (Sandbox Code Playgroud)

然后我从该源创建两个DataFrame.

df_one = df.select('col1', 'col2')
df_two = df.select('col1', 'col3')
Run Code Online (Sandbox Code Playgroud)

最后我想(内部)将它们重新组合在一起:

df_joined = df_one.join(df_two, df_one['col1'] == df_two['col1'], 'inner')
Run Code Online (Sandbox Code Playgroud)

关键col1是独特的.生成的DataFrame应该有n行,但它确实有n*n行.

做不到这一点,当我加载df_onedf_two直接从磁盘.我在Spark 1.3.0上,但这也发生在当前的1.4.0快照上.

谁能解释为什么会这样?

python apache-spark apache-spark-sql pyspark

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

如何以编程方式关闭fs2.StreamApp?

扩展StreamApp要求您提供定义stream。它有一个requestShutdown参数。

def stream(args: List[String], requestShutdown: F[Unit]): Stream[F, ExitCode]

我为此提供了实现,并理解args了作为命令行参数传入的实现。但是,我不确定是什么提供了该requestShutdown参数以及我可以使用它做什么。

具体来说,我想在Stream[IO, ExitCode]启动Http4s服务器(永久阻止)的上调用正常关机。

看起来Signal是必需的,必须设置吗?我试图“了解”的基础流如下所示:

for {
   scheduler <- Scheduler[IO](corePoolSize = 1)
   exitCode  <- BlazeBuilder[IO]
                    .bindHttp(port, "0.0.0.0")
                    .mountService(services(scheduler), "/")
                    .serve
    } yield exitCode
Run Code Online (Sandbox Code Playgroud)

我的streamdef在这里,并且StreamAppSpec来自fs2项目中有一些内容,StreamAppSpec但是我无法弄清楚如何适应它。

scala http4s fs2

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

多重处理可以在Python中工作,但不能在iPython中工作

我正在iPython中运行以下代码:

import multiprocessing

def my_function(x):
    """The function you want to compute in parallel."""
    x += 1
    return x


if __name__ == '__main__':
    pool = multiprocessing.Pool()
    results = pool.map(my_function, [1,2,3,4,5,6])
    print(results)
Run Code Online (Sandbox Code Playgroud)

在Windows的ipython QT控制台中。但是,代码不起作用-QT控制台冻结了。这个问题是特定于iPython的(上面的代码应适用于常规Python 2.7)。

有什么解决办法吗?

python qt ipython multiprocessing

5
推荐指数
2
解决办法
4846
查看次数

为pyspark运行nosetests

如何使用nosePython编写的Apache Spark应用程序运行单元测试?

随着nose人们会通常只是调用命令

nosetests
Run Code Online (Sandbox Code Playgroud)

testsPython包的目录中运行测试.需要使用spark-submit命令而不是通常的Python可执行文件运行Pyspark脚本以启用pyspark-module 的导入.我将如何结合nosetests使用pyspark来运行我的星火应用测试?

python nose nosetests apache-spark

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

全局启用spark.sql的区分大小写

该选项spark.sql.caseSensitive控制列名称等是否应区分大小写.它可以通过例如设置

spark_session.sql('set spark.sql.caseSensitive=true')
Run Code Online (Sandbox Code Playgroud)

并且是false默认的.

这似乎并不可能,使其能够在全球范围内$SPARK_HOME/conf/spark-defaults.conf

spark.sql.caseSensitive: True
Run Code Online (Sandbox Code Playgroud)

虽然.这是打算还是有一些其他文件来设置SQL选项?

同样在消息来源中声明,根本不鼓励这样做.这个建议背后的理由是什么?

apache-spark pyspark

5
推荐指数
2
解决办法
6653
查看次数

用于计算两组2d点之间的成对距离的Python替代方案

在Matlab中存在pdist2命令.给定矩阵mx2和矩阵nx2,每行矩阵代表一个2d点.现在我想建立一个mxn矩阵,使得(i,j)元素表示从距离i理论值的点mx2矩阵jTH的点nx2矩阵.我只是调用命令pdist2(M,N).

我在python中寻找替代方案.我当然可以写2 for循环,但由于我使用2个numpy数组,使用for循环并不总是最好的选择.在python宇宙中是否有针对此的优化命令?基本上我要求python替代MATLAB pdist2.

python algorithm numpy matrix euclidean-distance

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

如何为包含Properties对象的对象定义JSON模式?

我需要为对象创建一个JSON模式,该模式将包含java Properties对象作为其属性之一.嵌套的Properties对象将只是key = value的列表.键和值都是string类型.我找不到任何描述如何定义包含2种新类型的模式的文档.

应该是这样的:

{
"type": "object",
"name": "MyObj",
"properties": {
    "prop1": {
        "type": "string",
        "description": "prop1",
        "required": true
    },
    "props": {
        "type": "array",
        "items": {
            "type": "object"
            "properties": {
                "key": {
                    "type": "string",
                    "description": "key",
                    "required": true
                },
                "value": {
                    "type": "string",
                    "description": "the value",
                    "required": true
                }
            }
            "description": "the value",
            "required": true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

json jsonschema

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