小编Chr*_*lis的帖子

无需克隆即可在git仓库中浏览和显示文件

有没有办法在git仓库中浏览和显示文件而不先克隆它?我可以使用命令在svn中执行这些操作:

svn ls /path/to/repo 
svn cat /path/to/repo/file-in-repo

我可以使用git show但是做:

git show /path/to/repo
git show HEAD:/path/to/repo

结果

fatal: Not a git repository

git

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

如何访问Spark DataFrame中VectorUDT列的元素?

我有一个数据帧dfVectorUDT指定的列features.如何获取列的元素,比如第一个元素?

我尝试过以下操作

from pyspark.sql.functions import udf
first_elem_udf = udf(lambda row: row.values[0])
df.select(first_elem_udf(df.features)).show()
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict(for numpy.dtype)错误.如果我first_elem_udf = first_elem_udf(lambda row: row.toArray()[0])改为相同的错误.

我也试过,explode()但我得到一个错误,因为它需要一个数组或地图类型.

我认为这应该是一种常见的操作.

dataframe apache-spark apache-spark-sql pyspark apache-spark-ml

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

如何教SQLAlchemy从断开连接中恢复?

根据http://docs.sqlalchemy.org/en/rel_0_9/core/pooling.html#disconnect-handling-pessimistic,如果连接池中的条目不再有效,可以检测SQLAlchemy重新连接.我创建了以下测试用例来测试它:

import subprocess
from sqlalchemy import create_engine, event
from sqlalchemy import exc
from sqlalchemy.pool import Pool

@event.listens_for(Pool, "checkout")
def ping_connection(dbapi_connection, connection_record, connection_proxy):
    cursor = dbapi_connection.cursor()
    try:
        print "pinging server"
        cursor.execute("SELECT 1")
    except:
        print "raising disconnect error"
        raise exc.DisconnectionError()
    cursor.close()

engine = create_engine('postgresql://postgres@localhost/test')

connection = engine.connect()

subprocess.check_call(['psql', str(engine.url), '-c',
    "select pg_terminate_backend(pid) from pg_stat_activity " +
    "where pid <> pg_backend_pid() " +
    "and datname='%s';" % engine.url.database],
    stdout=subprocess.PIPE)

result = connection.execute("select 'OK'")
for row in result:
    print "Success!", " ".join(row)
Run Code Online (Sandbox Code Playgroud)

但是没有恢复,我收到了这个例外: …

python sqlalchemy psycopg2

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

如何将压缩(gz)CSV文件读入dask Dataframe?

有没有办法读取通过gz压缩到dask数据帧的.csv文件?

我直接尝试过

import dask.dataframe as dd
df = dd.read_csv("Data.gz" )
Run Code Online (Sandbox Code Playgroud)

但得到一个unicode错误(可能是因为它正在解释压缩的字节)有一个"compression"参数但compression = "gz"不起作用,到目前为止我找不到任何文档.

使用pandas我可以直接读取文件而不会产生问题,除了结果炸毁了我的记忆;-)但是如果我限制行数它可以正常工作.

import pandas.Dataframe as pd
df = pd.read_csv("Data.gz", ncols=100)
Run Code Online (Sandbox Code Playgroud)

python csv pandas dask

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

拼花地板文件是否保留Spark DataFrames的行顺序?

当我将Spark DataFrame保存为实木复合地板文件然后将其读回时,所得DataFrame的行与原始行不同,如下面的会话所示。这是DataFrames还是Parquet文件的“功能”?以行顺序保留方式保存DataFrame的最佳方法是什么?

>>> import numpy as np
>>> import pandas as pd
>>> pdf = pd.DataFrame(np.random.random((10,2)))
>>> pdf
          0         1
0  0.191519  0.622109
1  0.437728  0.785359
2  0.779976  0.272593
3  0.276464  0.801872
4  0.958139  0.875933
5  0.357817  0.500995
6  0.683463  0.712702
7  0.370251  0.561196
8  0.503083  0.013768
9  0.772827  0.882641
>>> df = sqlContext.createDataFrame(pdf)
>>> df.show()
+-------------------+--------------------+
|                  0|                   1|
+-------------------+--------------------+
| 0.1915194503788923|  0.6221087710398319|
| 0.4377277390071145|  0.7853585837137692|
| 0.7799758081188035|  0.2725926052826416|
| 0.2764642551430967|  0.8018721775350193|
| 0.9581393536837052|  0.8759326347420947|
|0.35781726995786667|  0.5009951255234587|
| 0.6834629351721363| …
Run Code Online (Sandbox Code Playgroud)

apache-spark parquet apache-spark-sql

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

PySpark DataFrame 中向量列的 UDF 问题

我在 PySpark 中的 Vectors 列上使用 UDF 时遇到问题,可以在此处说明:

from pyspark import SparkContext
from pyspark.sql import Row
from pyspark.sql.types import DoubleType
from pyspark.sql.functions import udf
from pyspark.mllib.linalg import Vectors

FeatureRow = Row('id', 'features')
data = sc.parallelize([(0, Vectors.dense([9.7, 1.0, -3.2])),
                       (1, Vectors.dense([2.25, -11.1, 123.2])),
                       (2, Vectors.dense([-7.2, 1.0, -3.2]))])
df = data.map(lambda r: FeatureRow(*r)).toDF()

vector_udf = udf(lambda vector: sum(vector), DoubleType())

df.withColumn('feature_sums', vector_udf(df.features)).first()
Run Code Online (Sandbox Code Playgroud)

这失败并显示以下堆栈跟踪:

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 5 in stage 31.0 failed …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql pyspark

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

删除首字母缩略词中的点而不是域名中的正则表达式是什么?

我想删除首字母缩略词中的点,但不删除python字符串中的域名.例如,我想要字符串

'a.b.c. test@test.com http://www.test.com'
Run Code Online (Sandbox Code Playgroud)

成为

'abc test@test.com http://www.test.com'
Run Code Online (Sandbox Code Playgroud)

我到目前为止最接近的正则表达式是

re.sub('(?:\s|\A).{1}\.',lambda s: s.group()[0:2], s)
Run Code Online (Sandbox Code Playgroud)

结果是

'ab.c. test@test.com http://www.test.com'
Run Code Online (Sandbox Code Playgroud)

似乎上面的正则表达式工作,我需要将正则表达式更改为

(?:\s|\A|\G).{1}\.
Run Code Online (Sandbox Code Playgroud)

但是在python中没有匹配标记的结束(\ G).

编辑:正如我在评论中提到的,字符串没有特定的格式.这些字符串包含非正式的人工对话,因此可能包含零个,一个或多个首字母缩略词或域名.如果它能使我免于编写"真正的"解析器,那么我可以使用一些错误.

python regex

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

通过强制转换为可逆的转换Python unicode?

u在Python中将unicode字符串转换为(byte)字符串的正确方法是调用u.encode(someencoding).

不幸的是,我之前并不知道我曾经用过str(u)转换.特别是,我打电话str(u)强制u成为一个字符串,这样我就可以使它成为一个有效的搁置键(必须是str).

由于我没有遇到任何问题UnicodeEncodeError,我想知道这个过程是否可逆/无损.也就是说,我可以u = str(converted_unicode)(或u = bytes(converted_unicode)在Python 3中)获取原始内容u吗?

python string unicode

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