小编nan*_*nue的帖子

火花提交的奇怪行为

我正在运行以下代码pyspark:

In [14]: conf = SparkConf()

In [15]: conf.getAll()

[(u'spark.eventLog.enabled', u'true'),
 (u'spark.eventLog.dir',
  u'hdfs://ip-10-0-0-220.ec2.internal:8020/user/spark/applicationHistory'),
 (u'spark.master', u'local[*]'),
 (u'spark.yarn.historyServer.address',
  u'http://ip-10-0-0-220.ec2.internal:18088'),
 (u'spark.executor.extraLibraryPath',
  u'/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5/lib/hadoop/lib/native'),
 (u'spark.app.name', u'pyspark-shell'),
 (u'spark.driver.extraLibraryPath',
  u'/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5/lib/hadoop/lib/native')]

In [16]: sc

<pyspark.context.SparkContext at 0x7fab9dd8a750>

In [17]: sc.version

u'1.4.0'

In [19]: sqlContext

<pyspark.sql.context.HiveContext at 0x7fab9de785d0>

In [20]: access = sqlContext.read.json("hdfs://10.0.0.220/raw/logs/arquimedes/access/*.json")
Run Code Online (Sandbox Code Playgroud)

一切顺利(我可以在Hive Metastore中创建表格等)

但是当我尝试运行此代码时spark-submit:

# -*- coding: utf-8 -*-                                                                                                                                                                                                                                                           

from __future__ import print_function

import re

from pyspark import SparkContext
from pyspark.sql import HiveContext
from pyspark.sql import Row
from pyspark.conf import SparkConf

if __name__ …
Run Code Online (Sandbox Code Playgroud)

hive apache-spark cloudera-cdh apache-spark-sql

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

使用斯坦福NLP(StanfordNERTagger和StanfordPOSTagger)为西班牙语设置NLTK

NLTK这种集成中的文档相当差.我遵循的步骤是:

然后在ipython控制台中:

在[11]中:导入nltk

In [12]: nltk.__version__
Out[12]: '3.1'

In [13]: from nltk.tag import StanfordNERTagger
Run Code Online (Sandbox Code Playgroud)

然后

st = StanfordNERTagger('/home/me/stanford/stanford-postagger-full-2015-04-20.zip', '/home/me/stanford/stanford-spanish-corenlp-2015-01-08-models.jar')
Run Code Online (Sandbox Code Playgroud)

但是当我试图运行它时:

st.tag('Adolfo se la pasa corriendo'.split())
Error: no se ha encontrado o cargado la clase principal edu.stanford.nlp.ie.crf.CRFClassifier

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-14-0c1a96b480a6> in <module>()
----> 1 st.tag('Adolfo se la pasa corriendo'.split())

/home/nanounanue/.pyenv/versions/3.4.3/lib/python3.4/site-packages/nltk/tag/stanford.py in tag(self, tokens)
     64     def tag(self, tokens):
     65         # This function should return …
Run Code Online (Sandbox Code Playgroud)

python nlp nltk stanford-nlp python-3.x

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

日期范围内的天数

如何从 type 列中提取天数daterange?是否可以?

我试过

select age(daterange('2018-01-01', '2018-02-01'));
Run Code Online (Sandbox Code Playgroud)

但失败了,我也尝试过投射,但int没有成功。我查看了文档,但找不到任何可以在范围类型中完成此操作的函数。

postgresql

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

S4对象组成不当行为?

我有以下问题(代码如下):我有两个S4类,让我们用A和指定它们B.本B类有一个类型的对象,一个名为列表a.list.本A类有一个名为方法test().然后,我创建类型的对象A,叫a,和类型的对象B,b,然后我插入a在列表中的对象b@a.list.

当我提取a对象并在其中使用该test方法时,会发生以下错误:

Error en function (classes, fdef, mtable)  : 
  unable to find an inherited method for function "test", for signature "list"
Run Code Online (Sandbox Code Playgroud)

但我直接在a对象中使用该方法,一切正常.

知道我做错了什么吗?

提前致谢

现在,代码:

> setClass("A", representation(a="character", b="numeric"))
> a <- new("A", a="Adolfo", b = 10)
> a
An object of class "A"
Slot "a":
[1] "Adolfo"

Slot "b": …
Run Code Online (Sandbox Code Playgroud)

r object s4

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

如何将 gensim LDA 主题输出与分数一起保存到 csv?

如何保存输出?我正在使用以下代码:

%time lda1 = models.LdaModel(corpus1, num_topics=20, id2word=dictionary1, update_every=5, chunksize=10000, passes=100)
Run Code Online (Sandbox Code Playgroud)

python-2.7 gensim

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

在 postgresql 中的循环内生成随机数

我想执行几次(假设 30 次)涉及随机数的“实验”

我的方法是:

select  
  rnd  
from 
  generate_series(0,30) as l,   -- number of times
lateral (
  select random() as rnd -- the "experiment"
) as t ;
Run Code Online (Sandbox Code Playgroud)

您可以将其理解为“执行 30 次实验”。

问题是该代码生成了 30 个精确的数字。

注意:“实验”部分显然更复杂,但在其中的某个地方,它会在每次实验运行时创建数百个随机数。即我想生成数百个随机数,共 30 次。这很重要,因为我知道我可以执行

select random() from generate_series(0,30)
Run Code Online (Sandbox Code Playgroud)

并获得 30 个不同的随机数,但这不是打算做的。

random postgresql lateral-join

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

有人可以给出PostgreSQL 9.4中有序集函数用例的例子吗?

我只是阅读了文档,并且在特定的页面上,但我无法找到一个可以使用此示例的示例(例如,此功能在分析中的用例),请您帮我解决这个麻烦事吗?

sql postgresql postgresql-9.4

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

使用 python 库 s3fs 写入 AWS S3 因 EntityTooLarge 失败

我知道 AWS S3 API 对上传大于 5 GB 的文件有限制。在boto3我应该使用multipart

我正在尝试配置S3File对象s3fs以执行相同的操作,但我无法弄清楚。

我正在使用(作为错误示例)一个非常基本的代码:

import s3fs

s3 = s3fs.S3FileSystem()

with s3.open("s3://bucket/huge_file.csv", "w") as s3_obj:
   with open("huge_file.csv") as local_file
       s3_obj.write(local_file.read())
Run Code Online (Sandbox Code Playgroud)

哪里huge_file.csv有尺寸 > 5Gb

我得到的错误是

...
botocore.exceptions.ClientError: An error occurred (EntityTooLarge) when calling  the PutObject operation: Your proposed upload exceeds the maximum allowed size

...

File ... /s3fs/core.py" line 1487, in __exit__

self.close()

File ... /s3fs/core.py" line 1454, in close
Run Code Online (Sandbox Code Playgroud)

所以,问题是如何(如果可能)我可以设置s3fs上传大于5Gb(How shoud …

python boto3

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

Hadoop 2.2.0中的MapReduce无法正常工作

安装和配置我Hadoop 2.2.0的伪分布式模式后,一切都在运行,如下所示jps:

$ jps
2287 JobHistoryServer
1926 ResourceManager
2162 NodeManager
1834 DataNode
1756 NameNode
3013 Jps
Run Code Online (Sandbox Code Playgroud)

然后我运行了wordcount示例

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /user/hdfs/file /output
Run Code Online (Sandbox Code Playgroud)

执行frezees(?)如下:

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /user/hdfs/file /output                                          
OpenJDK 64-Bit Server VM warning: You have loaded library /home/hduser/hadoop-src/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
14/04/22 …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce hadoop2

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

在hadoop中指定AWS凭证

我想在运行时指定AWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_ID

我已经尝试使用

hadoop -Dfs.s3a.access.key=${AWS_ACESS_KEY_ID} -Dfs.s3a.secret.key=${AWS_SECRET_ACCESS_KEY} fs -ls s3a://my_bucket/
Run Code Online (Sandbox Code Playgroud)

export HADOOP_CLIENT_OPTS="-Dfs.s3a.access.key=${AWS_ACCESS_KEY_ID} -Dfs.s3a.secret.key=${AWS_SECRET_ACCESS_KEY}"
Run Code Online (Sandbox Code Playgroud)

export HADOOP_OPTS="-Dfs.s3a.access.key=${AWS_ACCESS_KEY_ID} -Dfs.s3a.secret.key=${AWS_SECRET_ACCESS_KEY}"
Run Code Online (Sandbox Code Playgroud)

在最后两个示例中,我尝试使用:

hadoop fs -ls s3a://my-bucket/
Run Code Online (Sandbox Code Playgroud)

在所有情况下,我得到:

-ls: Fatal internal error
com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain
        at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:117)
        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3521)
        at com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1031)
        at com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:994)
        at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:297)
        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)
        at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
        at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
        at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
        at org.apache.hadoop.fs.shell.PathData.expandAsGlob(PathData.java:325)
        at org.apache.hadoop.fs.shell.Command.expandArgument(Command.java:235)
        at org.apache.hadoop.fs.shell.Command.expandArguments(Command.java:218)
        at org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:201)
        at org.apache.hadoop.fs.shell.Command.run(Command.java:165)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:287)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) …
Run Code Online (Sandbox Code Playgroud)

hadoop amazon-web-services sqoop

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

带有环境变量的ENTRYPOINT并未考虑新的参数

我们正在创建一个简单的Dockerfile,该文件的最后一行是

 ENTRYPOINT ["sh", "-c", "spark-submit --master $SPARK_MASTER script.py"]
Run Code Online (Sandbox Code Playgroud)

script.py是一个简单的pyspark应用程序(对于此讨论并不重要),这个pyspark应用程序接收一些我们尝试使用docker命令传递的参数,如下所示

 docker run --rm my_spark_app_image --param1 something --param2 something_else
Run Code Online (Sandbox Code Playgroud)

但是script.py没有得到任何参数,即容器执行:

 spark-submit --master $SPARK_MASTER script.py
Run Code Online (Sandbox Code Playgroud)

预期的行为是容器执行:

 spark-submit --master $SPARK_MASTER script.py --param1 something --param2 something_else
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

docker dockerfile

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

创建一个新列,其中包含自 pandas 中上次事件以来的时间

我有一个具有以下结构的 pandas 数据框:

ID    date           event_1   event_2 
 1    2016-01-03     False     False
      2016-02-07     True      False
      2016-02-18     False     True
 2    2016-01-01     False     True
      2016-01-04     False     False
      2016-02-02     True      False
      2016-02-04     False     False
      2016-02-05     False     True
Run Code Online (Sandbox Code Playgroud)

ID并且date是一个MultiIndex.

问题是,我想创建两个新列time_1time_2。这些列应显示自相应事件以来经过的时间,例如

ID    date           event_1     event_2   time_1    time_2
 1    2016-01-03     False       False     -          -
      2016-02-07     True        False     0          -
      2016-02-18     False       True      11         0
 2    2016-01-01     False       True      -          0
      2016-01-04     False       False     -          3
      2016-02-02     True        False …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

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

使用命令行将 matplotlib 图保存到文件中,而不使用 plt.save()

我有一个创建情节然后显示它的脚本:

(以下脚本是文档中的一个示例)

# coding: utf-8
# file: test_plot.py

import yaml

import matplotlib.pyplot as plt
import numpy as np


def plot():
    t = np.arange(0.0, 2.0, 0.01)
    s = 1 + np.sin(2*np.pi*t)
    plt.plot(t, s)

    plt.xlabel('time (s)')
    plt.ylabel('voltage (mV)')
    plt.title('About as simple as it gets, folks')
    plt.grid(True)
    plt.show()

if __name__ == '__main__':
    plot()
Run Code Online (Sandbox Code Playgroud)

如果从命令行 ( python test_plot.py)执行此脚本,它会正确显示绘图。

问题是:是否可以在修改代码的情况下将绘图保存到文件中?

python matplotlib

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