小编Gau*_*hah的帖子

验证与模型的错误消息相关联

我有两个模型如下

class User < ActiveRecord::Base
 validates_associated :account
end

class Account < ActiveRecord::Base

  belongs_to :user

  #----------------------------------Validations--Start-------------------------
  validates_length_of :unique_url, :within => 2..30 ,:message => "Should be atleast 3 characters long!"
  validates_uniqueness_of :unique_url ,:message => "Already Taken"
  validates_format_of :unique_url,:with => /^([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])$/ , :message => " Cannot contain special charaters"
  #----------------------------------Validations--End---------------------------
end
Run Code Online (Sandbox Code Playgroud)

现在,当我将帐户与用户关联时,它说

"帐户无效"

相反,我想直接从该模型获取错误消息.所以它应该说

"Should be atleast 3 characters long!""Already Taken"" Cannot contain special charaters"

有没有办法做到这一点 ?

我不想给出如下通用消息:

validates_associated :account , :message=>"one of the three validations failed"
Run Code Online (Sandbox Code Playgroud)

validation ruby-on-rails

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

火花流检查点恢复非常非常缓慢

  • 目标:从Kinesis读取并通过火花流将数据以Parquet格式存储到S3.
  • 情况:应用程序最初运行正常,运行1小时的批次,平均处理时间少于30分钟.出于某种原因,我们可以说应用程序崩溃了,我们尝试从检查点重新启动.处理现在需要永远,而不是前进.我们尝试以1分钟的批处理间隔测试相同的东西,处理运行良好,批次完成需要1.2分钟.当我们从检查点恢复时,每批需要大约15分钟.
  • 注意:我们使用s3作为检查点使用1个执行器,每个执行器有19g内存和3个内核

附上截图:

首次运行 - 检查点恢复之前 在检查点之前 - 流媒体页面

在检查点之前 - 工作页面

在检查点之前 - 乔布斯Page2

试图从检查点恢复: 检查点之后 -  Streaming Page 检查点后 - 工作页面

Config.scala

object Config {

  val sparkConf = new SparkConf


  val sc = new SparkContext(sparkConf)

  val sqlContext = new HiveContext(sc)


  val eventsS3Path = sc.hadoopConfiguration.get("eventsS3Path")
  val useIAMInstanceRole = sc.hadoopConfiguration.getBoolean("useIAMInstanceRole",true)

  val checkpointDirectory =  sc.hadoopConfiguration.get("checkpointDirectory")

//  sc.hadoopConfiguration.set("spark.sql.parquet.output.committer.class","org.apache.spark.sql.parquet.DirectParquetOutputCommitter")

  DateTimeZone.setDefault(DateTimeZone.forID("America/Los_Angeles"))

  val numStreams = 2

  def getSparkContext(): SparkContext = {
    this.sc
  }

  def getSqlContext(): HiveContext = {
    this.sqlContext
  }





}
Run Code Online (Sandbox Code Playgroud)

S3Basin.scala

object S3Basin {
  def main(args: Array[String]): Unit = {
    Kinesis.startStreaming(s3basinFunction _)
  }

  def s3basinFunction(streams : DStream[Array[Byte]]): Unit ={ …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 apache-spark amazon-kinesis spark-streaming checkpointing

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

android小部件更新期间milles不工作

我是一个新的android开发人员,试图编写一个小部件.."updatePeriodMillis"参数告诉小部件在给定的duraion之后调用onupdate方法,但它不会发生在我身上....

有人可以指出我的错误..这是我的档案

SRC/hellowidget.java

package de.thesmile.android.widget;

import android.appwidget.AppWidgetProvider;
import java.util.Random;

import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;



public class HelloWidget extends AppWidgetProvider {
    int number =0;


    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {

         number = (new Random().nextInt(100));
        for (int appWidgetId : appWidgetIds) {


            RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.main);
            views.setTextViewText(R.id.TextView01, String.valueOf(number));
            appWidgetManager.updateAppWidget(appWidgetId, views);

        }

    }


}
Run Code Online (Sandbox Code Playgroud)

XML/hello_widget_provider.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="1000"
android:initialLayout="@layout/main"
/>
Run Code Online (Sandbox Code Playgroud)

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent"
android:orientation="vertical"

android:layout_gravity="center"
android:layout_height="wrap_content">
<TextView …
Run Code Online (Sandbox Code Playgroud)

android android-widget

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

将画布数据上传到s3

现在,亚马逊已经启用,CORS我想知道这是否可行.

可以将html canvas数据(在客户端浏览器上)转换为a something并直接上传到s3吗?

我相信我可以PUT向亚马逊提出要求,但这需要一个File.

我可以获得base64编码的图像数据,甚至Blob可以S3从客户端浏览器中将其保存为图像?

有没有办法转换canvas,File以便我可以提出PUT要求或亚马逊理解Blob并将其保存为图像的方式?

javascript amazon-s3 cors

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

Spark甚至在分区数据中列出所有叶节点

我有date&hour,文件夹结构分区的镶木地板数据:

events_v3
  -- event_date=2015-01-01
    -- event_hour=2015-01-1
      -- part10000.parquet.gz
  -- event_date=2015-01-02
    -- event_hour=5
      -- part10000.parquet.gz
Run Code Online (Sandbox Code Playgroud)

我已经raw_events通过spark 创建了一个表,但是当我尝试查询时,它会扫描所有目录的页脚,这会减慢初始查询,即使我只查询一天的数据.

查询: select * from raw_events where event_date='2016-01-01'

类似的问题:http://mail-archives.apache.org/mod_mbox/spark-user/201508.mbox/%3CCAAswR-7Qbd2tdLSsO76zyw9tvs-Njw2YVd36bRfCG3DKZrH0tw@mail.gmail.com%3E(但它的旧版本)

日志:

App > 16/09/15 03:14:03 main INFO HadoopFsRelation: Listing leaf files and directories in parallel under: s3a://bucket/events_v3/
Run Code Online (Sandbox Code Playgroud)

然后它产生350个任务,因为有350天的数据.

我已经禁用了schemaMerge,并且还指定了架构来读取,因此它可以转到我正在查看的分区,为什么要打印所有叶子文件?列出具有2个执行程序的叶子文件需要10分钟,查询实际执行需要20秒

代码示例:

val sparkSession = org.apache.spark.sql.SparkSession.builder.getOrCreate()
val df = sparkSession.read.option("mergeSchema","false").format("parquet").load("s3a://bucket/events_v3")
    df.createOrReplaceTempView("temp_events")
    sparkSession.sql(
      """
        |select verb,count(*) from temp_events where event_date = "2016-01-01" group by verb
      """.stripMargin).show()
Run Code Online (Sandbox Code Playgroud)

partitioning amazon-s3 apache-spark parquet apache-spark-sql

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

在ruby中创建大文件xml

我想将一些数据写入XML文件(XML文件将达到~50 MB).

我找到了nokogiri(1.5.0)宝石 最多高效解析(只读和不写).Nokogiri不是写入XML文件的好选择,因为它在内存中保存完整的XML数据,直到写入最终将其写下来.

我发现builder(3.0.0)是一个不错的选择,但不确定它是否是最好的选择.

我用以下简单的代码尝试了一些基准测试:

  (1..500000).each do |k|
    xml.products {
      xml.widget {
        xml.id_ k
        xml.name "Awesome widget"
      }
    }
    end
Run Code Online (Sandbox Code Playgroud)

Nokogiri大约需要143秒,内存消耗也逐渐增加,最终达到700 MB左右.

Builder大约需要123秒,内存消耗足够稳定在10 MB.

那么在Ruby中编写大量XML文件(50 MB)有更好的解决方案吗?

Nokogiri文件:

require 'rubygems'
require 'nokogiri'
a = Time.now
builder = Nokogiri::XML::Builder.new do |xml|
  xml.root {
    (1..500000).each do |k|
    xml.products {
      xml.widget {
        xml.id_ k
        xml.name "Awesome widget"
      }
    }
    end
  }
end
o = File.new("test_noko.xml", "w")
o.write(builder.to_xml)
o.close
puts (Time.now-a).to_s
Run Code Online (Sandbox Code Playgroud)

生成器文件:

require 'rubygems'
require 'builder'
a = Time.now
File.open("test.xml", 'w') {|f|
xml …
Run Code Online (Sandbox Code Playgroud)

ruby xml builder nokogiri

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

随着分区的增长,火花拼花地板写得越慢

我有一个火花流应用程序,从流中写入镶木地板数据.

sqlContext.sql(
      """
        |select
        |to_date(from_utc_timestamp(from_unixtime(at), 'US/Pacific')) as event_date,
        |hour(from_utc_timestamp(from_unixtime(at), 'US/Pacific')) as event_hour,
        |*
        |from events
        | where at >= 1473667200
      """.stripMargin).coalesce(1).write.mode(SaveMode.Append).partitionBy("event_date", "event_hour","verb").parquet(Config.eventsS3Path)
Run Code Online (Sandbox Code Playgroud)

这段代码每小时运行一段时间,但随着时间的推移,对镶木地板的写作速度已经放慢.当我们开始时花了15分钟来写数据,现在需要40分钟.对于该路径中存在的数据而言,这需要时间.我尝试将相同的应用程序运行到新位置并且运行速度很快.

我已禁用schemaMerge和摘要元数据:

sparkConf.set("spark.sql.hive.convertMetastoreParquet.mergeSchema","false")
sparkConf.set("parquet.enable.summary-metadata","false")
Run Code Online (Sandbox Code Playgroud)

使用spark 2.0

批处理执行:空目录 在此输入图像描述 在此输入图像描述 在此输入图像描述 目录有350个文件夹 在此输入图像描述 在此输入图像描述 在此输入图像描述

partitioning apache-spark parquet

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

eclipse无法正常工作 - 没有找到java虚拟机

我在mac osx 10.6上安装了eclipse和netbeans我安装了android sdk,一切都运行得很好.

现在我安装了mac端口并使用macports安装了ImageMagick

现在重新启动系统后,netbeans既不工作也不工作.

网豆关闭没有任何错误.和eclipse给出以下错误:

必须安装JDK或JRE才能运行eclipse搜索以下位置后找不到java虚拟机:/Users....../eclipse.app ContentsMacOS/jre/bin/java java in you current PATH

我认为这个问题可能与路径有关.

所以我尝试从终端运行java和javac.但是这两个命令运行正常.

注意:我没有javaw(我不确定我们是否在mac中有这个文件.

我能知道可能出现的问题吗?我该如何解决?

java eclipse netbeans osx-snow-leopard

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

Spark SQL没有正确转换时区

使用Scala 2.10.4和spark 1.5.1和spark 1.6

sqlContext.sql(
  """
    |select id,
    |to_date(from_utc_timestamp(from_unixtime(at), 'US/Pacific')),
    |from_utc_timestamp(from_unixtime(at), 'US/Pacific'),
    |from_unixtime(at),
    |to_date(from_unixtime(at)),
    | at
    |from events
    | limit 100
  """.stripMargin).collect().foreach(println)
Run Code Online (Sandbox Code Playgroud)

Spark-Submit选项: --driver-java-options '-Duser.timezone=US/Pacific'

结果:

[56d2a9573bc4b5c38453eae7,2016-02-28,2016-02-27 16:01:27.0,2016-02-28 08:01:27,2016-02-28,1456646487]
[56d2aa1bfd2460183a571762,2016-02-28,2016-02-27 16:04:43.0,2016-02-28 08:04:43,2016-02-28,1456646683]
[56d2aaa9eb63bbb63456d5b5,2016-02-28,2016-02-27 16:07:05.0,2016-02-28 08:07:05,2016-02-28,1456646825]
[56d2aab15a21fa5f4c4f42a7,2016-02-28,2016-02-27 16:07:13.0,2016-02-28 08:07:13,2016-02-28,1456646833]
[56d2aac8aeeee48b74531af0,2016-02-28,2016-02-27 16:07:36.0,2016-02-28 08:07:36,2016-02-28,1456646856]
[56d2ab1d87fd3f4f72567788,2016-02-28,2016-02-27 16:09:01.0,2016-02-28 08:09:01,2016-02-28,1456646941]
Run Code Online (Sandbox Code Playgroud)

美国/太平洋地区的时间应该是2016-02-28 00:01:27等等,但有些时间是两次减去"8"小时

timezone hive scala apache-spark

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

jquery停止调用其他处理程序

假设我有标签,我附加了两个点击事件:

$('#l1').bind('click',function(){
 alert('label clicked');
}
$('#l2').bind('click',function(){
 alert('label2 clicked');
}
$('#l3').bind('click',function(){
 alert('label3 clicked');
}

$('label').bind('click',function(){
 if($(this).hasClass('disabled')
return false
}
<label id='l1'>hi</label>
<label id='l2' class="disabled">bye</label>
<label id='l3'>hi</label>
Run Code Online (Sandbox Code Playgroud)

现在,我不希望在disabled单击具有类的标签时显示警报.有可能吗?

注意:alert只是一个虚拟的东西..我正在执行一组操作,而不是那个...每个不同的实际标签

javascript jquery javascript-events

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