小编Rod*_*gue的帖子

在Spark中,在所有工作者上拥有静态对象的正确方法是什么?

我一直在看Spark的文档,它提到了这个:

Spark的API在很大程度上依赖于在驱动程序中传递函数以在集群上运行.有两种建议的方法可以做到这一点:

匿名函数语法,可用于短代码.全局单例对象中的静态方法.例如,您可以定义对象MyFunctions,然后传递MyFunctions.func1,如下所示:

object MyFunctions {   def func1(s: String): String = { ... } }

myRdd.map(MyFunctions.func1) 
Run Code Online (Sandbox Code Playgroud)

请注意,虽然也可以将引用传递给类实例中的方法(而不是单例对象),但这需要发送包含该类的对象以及方法.例如,考虑:

class MyClass {   
  def func1(s: String): String = { ... }   
  def doStuff(rdd: RDD[String]): RDD[String] = { rdd.map(func1) } 
} 
Run Code Online (Sandbox Code Playgroud)

在这里,如果我们创建一个新的MyClass并在其上调用doStuff,那里的map会引用该MyClass实例的func1方法,因此需要将整个对象发送到集群.它类似于写作 rdd.map(x => this.func1(x)).

现在我的疑问是,如果你对单例对象(它应该等同于静态)有属性会发生什么.相同的例子有一个小的改动:

object MyClass {   
  val value = 1   
  def func1(s: String): String = { s + value }   
} 

myRdd.map(MyClass.func1) 
Run Code Online (Sandbox Code Playgroud)

所以该函数仍然是静态引用的,但是Spark尝试序列化所有引用的变量会走多远?它会序列化value还是会在远程工作者中再次初始化?

另外,这一切都在我在单例对象中有一些重型模型的上下文中,我想找到将它们序列化到工作者的正确方法,同时保持从单独的单例引用它们的能力,而不是将它们传递给跨深度函数调用堆栈的函数参数.

有关Spark序列化事物的内容/方式/时间的任何深入信息将不胜感激.

scala apache-spark

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

Ansible:从本地目录获取文件列表

我使用ansible 1.9.4,我想从本地目录中获取文件列表.

在2.0版本中,有find模块,但此版本是beta版.

如何在<2.0中执行此操作?

ansible

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

我应该如何从另一个js文件中包含一个js文件?

从另一个javascript文件添加对javascript文件的引用的最佳方法是什么?

假设我的网页中包含js文件.这个javascript依赖于另一个文件.所以我想在我的js文件中引用依赖,而不是从html代码引用.我的想法是否正确?

我知道我可以创建一个scriptDOM元素,然后将其附加到页面,但这对我来说闻起来很糟糕.

你有任何提示吗?

javascript reference

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

Amazon Redshift:删除表(如果存在)

Redshift是否支持与以下相同的任何声明?

DROP TABLE IF EXISTS tablename
Run Code Online (Sandbox Code Playgroud)

amazon-redshift

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

Postgresql JDBC Driver是否支持Pgpass身份验证?

我正在尝试使用JDBC驱动程序从Java连接到Postgresql数据库,并希望使用pgpass进行身份验证.

我的Postgresql服务器已正确设置为密码验证,我有一个本地.pgpass文件; 我可以使用psql连接,而无需提供用户的密码.但是,当我尝试在Java中打开连接时,我收到以下错误:

org.postgresql.util.PSQLException: The server requested password-based authentication, but no password was provided.
Run Code Online (Sandbox Code Playgroud)

我使用以下代码:

String url = "jdbc:postgresql://localhost/test";
Properties props = new Properties();
props.setProperty("user","my_user");
Connection conn = DriverManager.getConnection(url, props);
Run Code Online (Sandbox Code Playgroud)

我的问题是:Postgres JDBC Driver是否支持pgpass?

我能找到的唯一线索是在SO中,似乎表明由于驱动程序不使用libpq,所以它不能使用pgpass.我似乎无法在任何地方找到一个authoritave答案.

java postgresql jdbc

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

Ruby相当于Python __main__

如果在ruby文件中我定义了这样的函数:

def tell_the_truth()
    puts "truth"
end
Run Code Online (Sandbox Code Playgroud)

有没有相当于python的主要?

if __name__ == "__main__":
    tell_the_truth()
Run Code Online (Sandbox Code Playgroud)

是简单地调用文件中的函数吗?

tell_the_truth
Run Code Online (Sandbox Code Playgroud)

ruby python program-entry-point

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

使用Boto查找已安装的设备和EBS卷

如何使用Python Boto v2.0找到装入EBS卷的设备?

boto.ec2.Volume有一些有趣的特性,比如attachment_statevolume_state.但是有任何设备映射功能吗?

boto.manage.volumeget_device(self, params),但需要CommandLineGetter.

关于如何进行或使用一些样品的任何指示boto.manage

python amazon-ec2 amazon-ebs boto

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

Rails 3.1,为什么我得到ActiveRecord :: UnknownAttributeError:spec测试中的未知属性?

我试图Student在测试中创建一个记录,如下所示:

student= Student.create!(:work_phone => "1234567890")
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

ActiveRecord::UnknownAttributeError: unknown attribute: work_phone
Run Code Online (Sandbox Code Playgroud)

但是,work_phoneStudent模型中定义并进行迁移.

这是Student模型:

class Student < ActiveRecord::Base

  validates_length_of :work_phone, :is => 10, :message => 'must be 10 digits, excluding special characters such as spaces and dashes. No extension or country code allowed.', :if => Proc.new{|o| !o.work_phone.blank?}

  attr_accessible:work_phone

end
Run Code Online (Sandbox Code Playgroud)

任何的想法?

activerecord rspec2 ruby-on-rails-3

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

将float转换为字符串,在Python中使用小数点后零点切换

我无法通过以下方式将float转换为字符串:

20.02  --> 20.02
20.016 --> 20.02
20.0   --> 20
Run Code Online (Sandbox Code Playgroud)

似乎%g格式是最好的,但我得到奇怪的结果:

In [30]: "%.2g" % 20.03
Out[30]: '20'

In [31]: "%.2g" % 20.1
Out[31]: '20'

In [32]: "%.2g" % 20.3
Out[32]: '20'

In [33]: "%.2g" % 1.2
Out[33]: '1.2'

In [34]: "%.2g" % 1.0
Out[34]: '1'

In [35]: "%.2g" % 2.0
Out[35]: '2'

In [36]: "%.2g" % 2.2
Out[36]: '2.2'

In [37]: "%.2g" % 2.25
Out[37]: '2.2'

In [38]: "%.2g" % 2.26
Out[38]: '2.3'

In [39]: "%.3g" % …
Run Code Online (Sandbox Code Playgroud)

python string floating-point

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

使用RSpec加载ActiveRecord灯具而不使用Rails

我正在使用我正在编写单元测试的一些ActiveRecord模型Rails.在我的测试中,我希望能够使用灯具,并认为我会使用一些rspec-rails功能.我不能简单地使用,require "rspec-rails"因为它有一些Rails依赖项,我不使用Rails.

这是spec_helper我正在使用的:

require 'active_record'
require 'active_record/fixtures'
require 'active_support'
require 'rspec/rails/extensions/active_record/base'
require 'rspec/rails/adapters'
require 'rspec/rails/fixture_support'  # Includes ActiveRecord::TestFixtures
                                       # into the RSpec config

require 'my_models'

# Setup database connection
environment = "test"
configuration = YAML::load(File.open('config/database.yml'))
ActiveRecord::Base.establish_connection(configuration[environment])

RSpec.configure do |config|
  config.fixture_path = File.expand_path("../../test/fixtures", __FILE__)

  # If you're not using ActiveRecord, or you'd prefer not to run each of your
  # examples within a transaction, remove the following line or assign false …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing rspec rails-activerecord

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