小编Que*_*det的帖子

92
推荐指数
3
解决办法
14万
查看次数

在Spark DataFrame中查找每个组的最大行数

我正在尝试使用Spark数据帧而不是RDD,因为它们看起来比RDD更高级,并且往往会产生更易读的代码.

在一个14节点的Google Dataproc集群中,我有大约6百万个名称被两个不同的系统转换为ID:sasb.每个Row包含name,id_said_sb.我的目标是从生产映射id_said_sb使得对于每id_sa时,相应的id_sb是连接到所有名称中最常见的ID id_sa.

让我们试着用一个例子来澄清.如果我有以下行:

[Row(name='n1', id_sa='a1', id_sb='b1'),
 Row(name='n2', id_sa='a1', id_sb='b2'),
 Row(name='n3', id_sa='a1', id_sb='b2'),
 Row(name='n4', id_sa='a2', id_sb='b2')]
Run Code Online (Sandbox Code Playgroud)

我的目标是从生产映射a1b2.事实上,相关的名称a1n1,n2n3,分别映射b1,b2b2,因此b2是相关联的名称最常见的映射a1.以同样的方式,a2将映射到b2.可以假设总有一个胜利者:不需要打破关系.

我希望我可以使用groupBy(df.id_sa)我的数据帧,但我不知道接下来该做什么.我希望最终会产生以下行的聚合:

[Row(id_sa=a1, max_id_sb=b2),
 Row(id_sa=a2, max_id_sb=b2)]
Run Code Online (Sandbox Code Playgroud)

但也许我正在尝试使用错误的工具,我应该回到使用RDD.

apache-spark apache-spark-sql pyspark

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

pip是否从基于setuptools/distribute的源处理extras_requires?

我有一个带有setup.py的包"A"和一个extras_requires行,如:

extras_require = {
    'ssh':  ['paramiko'],
},
Run Code Online (Sandbox Code Playgroud)

一个依赖于util的包"B":

install_requires = ['A[ssh]']
Run Code Online (Sandbox Code Playgroud)

如果我运行python setup.py installsetuptools.command.easy_install引擎盖下使用的软件包B,extras_requires则会正确解析,并安装了paramiko.

但是,如果我运行pip /path/to/Bpip hxxp://.../b-version.tar.gz安装包A,但paramiko不是.

因为pip"从源代码安装",我不太清楚为什么这不起作用.它应该调用B的setup.py,然后解析和安装B和A的依赖关系.

这可能与pip有关吗?

python pip setuptools distribute

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

类型View中的setOnClickListener(View.OnClickListener)不适用于参数(SequencerActivity)back.setOnClickListener(this);

我想在按钮单击时显示图像,但我的代码中有三个错误.怎么了?

  1. class name "SequencerActivity"
    
    Run Code Online (Sandbox Code Playgroud)

    SequencerActivity类型必须实现继承的抽象方法DialogInterface.OnClickListener.onClick(DialogInterface, int).

  2. next.setOnClickListener(this);
    
    Run Code Online (Sandbox Code Playgroud)

    setOnClickListener(View.OnClickListener)View类型中的方法不适用于参数(SequencerActivity).

  3. onClick(View v)
    
    Run Code Online (Sandbox Code Playgroud)

onClick(View)类型的方法SequencerActivity必须覆盖或实现超类型方法.

这是给出这些错误的代码:

public class SequencerActivity extends Activity implements OnClickListener
{
private int imageCounter = 0;
private ImageView imageLoader;

private int[] imageList = {R.drawable.f03, R.drawable.f04, R.drawable.f05, R.drawable.f06};

@Override
public void onCreate(Bundle savedInstanceState) 
{
    setContentView(R.layout.main);//this one is the common parent layout for all image views
    super.onCreate(savedInstanceState);

    /*requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);*/

    //int image1 = R.drawable.image_w_lbl_0;

    imageLoader = (ImageView) findViewById(R.id.imageLoader);
    //imageLoader.setImageResource(image1);

    Button next = (Button) findViewById(R.id.next);
    Button …
Run Code Online (Sandbox Code Playgroud)

android

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

哪个Python异步库最适合我的代码?Asyncore?扭曲?

我有一个我正在研究的程序,它将同时从两个"网络源"读取.我想尝试一种异步方法,而不是使用线程.这让我想知道使用哪个库...

我想出了一些简单的示例代码,它可以演示我的程序将要执行的操作:

import sniffer

def first():
    for station in sniffer.sniff_wifi():
        log(station.mac())

def second():
    for station in sniffer.sniff_ethernet():
        log(station.mac())

first()
second()
Run Code Online (Sandbox Code Playgroud)

这两种sniffer方法看起来有点像这样:

def sniff_wifi(self):

    while True:
        yield mac_address
Run Code Online (Sandbox Code Playgroud)

while True循环显然使得它们阻塞.

我想用asyncore它,因为它是标准库的一部分.没有第三方依赖是奖金.但是,这并不意味着如果你建议我做的话我不会用它...

我可以实现我想用asyncore做的事情吗?如果是这样,你能告诉我如何将我的示例代码转换为'asyncore代码'吗?你知道任何好的asyncore教程吗?

python asynchronous twisted asyncore

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

将BytesIO对象写入文件,"有效"

因此,将BytesIO对象写入文件的快速方法是使用:

with open('myfile.ext', 'wb') as f:
    f.write(myBytesIOObj.getvalue())
myBytesIOObj.close()
Run Code Online (Sandbox Code Playgroud)

但是,如果我想迭代myBytesIOObj而不是将其写入一个块,我将如何进行呢?我在使用Python 2.7.1.另外,如果BytesIO很大,那么迭代编写是否会更有效?

谢谢

python io bytesio

15
推荐指数
2
解决办法
7841
查看次数

是否有可能在HTML5中拥有多个数据 - {name}属性?

有没有办法从这个元素中获取所有3个数据值?

 <div id="viewport" 
    data-requires='js/base/paths'
    data-requires='js/base/dialog'
    data-requires='js/base/notifier'>
Run Code Online (Sandbox Code Playgroud)

这对我正在开始的项目非常有用.有了这个,我可以加载所需的js模块并将它们链接到dom.我知道这可能听起来很奇怪,但我正在尝试新的东西.

javascript html5

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

如何使用pytest.raises多个例外?

我正在测试代码,其中可以引发两个异常之一:MachineError或NotImplementedError.我想用它pytest.raises来确保在运行我的测试代码时至少引发其中一个,但它似乎只接受一个异常类型作为参数.

这是签名pytest.raises:

raises(expected_exception, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我尝试or在上下文管理器中使用关键字:

with pytest.raises(MachineError) or pytest.raises(NotImplementedError):
    verb = Verb("donner<IND><FUT><REL><SG><1>")
    verb.conjugate()
Run Code Online (Sandbox Code Playgroud)

但我认为这只检查第一个pytest.raises是否None,并将第二个设置为上下文管理器(如果是).

将多个异常作为位置参数传递不起作用,因为pytest.raises它的第二个参数是可调用的.每个后续位置参数都作为参数传递给该可调用对象.

文档:

>>> raises(ZeroDivisionError, lambda: 1/0)
<ExceptionInfo ...>

>>> def f(x): return 1/x
...
>>> raises(ZeroDivisionError, f, 0)
<ExceptionInfo ...>
>>> raises(ZeroDivisionError, f, x=0)
<ExceptionInfo ...>
Run Code Online (Sandbox Code Playgroud)

将异常作为列表传递也不起作用:

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    with pytest.raises([MachineError, NotImplementedError]):
  File "/usr/local/lib/python3.4/dist-packages/_pytest/python.py", line 1290, in raises
    raise TypeError(msg …
Run Code Online (Sandbox Code Playgroud)

exception contextmanager pytest python-3.x

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

将hash.digest()转换为unicode

import hashlib
string1 = u'test'
hashstring = hashlib.md5()
hashstring.update(string1)
string2 = hashstring.digest()

unicode(string2)

UnicodeDecodeError: 'ascii' codec can't decode byte 0x8f in position 1: ordinal
not in range(128)
Run Code Online (Sandbox Code Playgroud)

字符串HAS是unicode,它对我有用,可以这样做吗?使用python 2.7如果有帮助...

python unicode unicode-string

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

如何使用git interactive rebase签署一系列提交

我想我已经完成并想要发送到上游项目的分支上签署所有提交(例如,通过GitHub上的pull请求).

我发现的推荐方法是使用

git rebase -i [base-commit]
# Set all commits to "edit"
git commit --amend --signoff  # do this for all commits
Run Code Online (Sandbox Code Playgroud)

如何在一个非交互式命令中自动执行此操作?

git git-rebase git-commit

11
推荐指数
2
解决办法
3170
查看次数