小编Cyb*_*unk的帖子

如何解析 .zshenv。未找到 pyenv 命令?

我已经安装了 pyenv,我的 .zshenv 如下所示:

export PYENV_ROOT="$HOME"/.pyenv
export PATH="$PYENV_ROOT"/bin:"$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi
eval "$(pyenv virtualenv-init -)"
Run Code Online (Sandbox Code Playgroud)

当我打开新终端时,出现以下错误:

.zshenv。未找到命令: : pyenv

pyenv

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

在 Docker 容器内运行应用程序单元测试

我最近开始使用 docker 并且我容器化了一个 python 应用程序。我使用了以下 Dockerfile。

FROM python:3.6.5

# working directory
WORKDIR /usr/src/app

# copy requirement file to working directory
COPY requirements.txt ./

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

ENTRYPOINT ["python", "./run.py"]
Run Code Online (Sandbox Code Playgroud)

我有一些使用 pytest 调用的单元测试。我在想如何将它包含在 docker 容器中,以便单元测试可以在 docker 容器内运行。我应该为它建立一个不同的形象。您对此有何建议。

python-3.x docker

6
推荐指数
3
解决办法
8037
查看次数

本地预测的 gcloud 问题

gcloud local prediction用来测试我导出的模型。该模型是在自定义数据集上训练过的 TensorFlow 对象检测模型。我正在使用以下 gcloud 命令:

gcloud ml-engine local predict --model-dir=/path/to/saved_model/ --json-instances=input.json --signature-name="serving_default" --verbosity debug 
Run Code Online (Sandbox Code Playgroud)

当我不使用 verbose 时,该命令不输出任何内容。将详细设置为调试后,我得到以下回溯:

DEBUG: [Errno 32] Broken pipe
Traceback (most recent call last):
  File "/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 984, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 784, in Run
    resources = command_instance.Run(args)
  File "/google-cloud-sdk/lib/surface/ai_platform/local/predict.py", line 83, in Run
    signature_name=args.signature_name)
  File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/local_utils.py", line 103, in RunPredict
    proc.stdin.write((json.dumps(instance) + '\n').encode('utf-8'))
IOError: [Errno 32] Broken pipe 
Run Code Online (Sandbox Code Playgroud)

我的导出模型的详细信息:

MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs: …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform tensorflow google-cloud-ml

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

如何在pyspark管道中添加UDF?

我有以下代码,它基本上是在做特征工程管道:

token_q1=Tokenizer(inputCol='question1',outputCol='question1_tokens') 
token_q2=Tokenizer(inputCol='question2',outputCol='question2_tokens')  

remover_q1=StopWordsRemover(inputCol='question1_tokens',outputCol='question1_tokens_filtered')
remover_q2=StopWordsRemover(inputCol='question2_tokens',outputCol='question2_tokens_filtered')

q1w2model = Word2Vec(inputCol='question1_tokens_filtered',outputCol='q1_vectors')
q1w2model.setSeed(1)

q2w2model = Word2Vec(inputCol='question2_tokens_filtered',outputCol='q2_vectors')
q2w2model.setSeed(1)

pipeline=Pipeline(stages[token_q1,token_q2,remover_q1,remover_q2,q1w2model,q2w2model])
model=pipeline.fit(train)
result=model.transform(train)
result.show()
Run Code Online (Sandbox Code Playgroud)

我想将以下 UDF 添加到上述管道中:

charcount_q1 = F.udf(lambda row : sum([len(char) for char in row]),IntegerType())
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到 Java 错误。有人可以指出我正确的方向吗?

但是,我使用以下基本有效的代码添加了此列:

charCountq1=train.withColumn("charcountq1", charcount_q1("question1"))
Run Code Online (Sandbox Code Playgroud)

但我想将它添加到管道中而不是这样做

apache-spark apache-spark-sql pyspark

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

将组折叠成一行 Pandas 数据框

我有一个如下的数据框:

         id                     timestamp            name
         1                  2018-01-23 15:49:53     "aaa"
         1                  2018-01-23 15:54:56     "bbb"
         1                  2018-01-23 15:49:57     "bbb"
         1                  2018-01-23 15:49:54     "ccc"
Run Code Online (Sandbox Code Playgroud)

这是我的数据中的一组 id 示例。我有几组ID。我想要做的是将每个组折叠成一行,但根据时间戳按时间顺序排列,例如像这样

         id                       name   
          1                   aaa->ccc->bbb->bbb
Run Code Online (Sandbox Code Playgroud)

name 中的值按时间顺序排列,因为它们与时间戳一起出现。关于这个的任何指示?

python pandas

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

如何在 github 操作中使用自己的 Makefile?

我正在尝试使用 github 操作自动化 CI/CD 管道。我有一个 Makefile 如下:

.virtualenv:
    virtualenv -p python3 .virtualenv
    . .virtualenv/bin/activate; \
    pip install -r requirements.txt -r requirements_test.txt

clean:
    find . -name __pycache__ -exec rm -rf {} +
    rm -rf *.egg-info
    rm -rf .virtualenv/


test: .virtualenv
    (. .virtualenv/bin/activate; \
    pycodestyle --max-line-length=79 app test; \
    nosetests --with-coverage --cover-tests --cover-min-percentage=80 --cover-package=app test)

build: test clean

.PHONY: test clean
Run Code Online (Sandbox Code Playgroud)

我想使用 github 操作来自动化这个工作流程。我已经像这样设置了我的 github 工作流程:

name: python-app

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github-actions

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

如何在pyspark中编写嵌套的if else?

我有一个 pyspark 数据框,我想达到以下条件:

if col1 is not none:
    if col1 > 17:
       return False
    else:
       return True
    return None 
Run Code Online (Sandbox Code Playgroud)

我通过以下方式实现了它:

out = out.withColumn('col2', out.withColumn(
        'col2', when(col('col1').isNull(), None).otherwise(
            when(col('col1') > 17, False).otherwise(True)
        )))
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此命令时,出现以下错误:

  assert isinstance(col, Column), "col should be Column"
AssertionError: col should be Column
Run Code Online (Sandbox Code Playgroud)

任何想法我可能做错了什么。

pyspark

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