我有两个模型如下
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) 附上截图:
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
我是一个新的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) 现在,亚马逊已经启用,CORS我想知道这是否可行.
可以将html canvas数据(在客户端浏览器上)转换为a something并直接上传到s3吗?
我相信我可以PUT向亚马逊提出要求,但这需要一个File.
我可以获得base64编码的图像数据,甚至Blob可以S3从客户端浏览器中将其保存为图像?
有没有办法转换canvas,File以便我可以提出PUT要求或亚马逊理解Blob并将其保存为图像的方式?
我有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
我想将一些数据写入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) 我有一个火花流应用程序,从流中写入镶木地板数据.
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
我在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中有这个文件.
我能知道可能出现的问题吗?我该如何解决?
使用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"小时
假设我有标签,我附加了两个点击事件:
$('#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只是一个虚拟的东西..我正在执行一组操作,而不是那个...每个不同的实际标签
apache-spark ×4
amazon-s3 ×3
javascript ×2
parquet ×2
partitioning ×2
android ×1
builder ×1
cors ×1
eclipse ×1
hive ×1
java ×1
jquery ×1
netbeans ×1
nokogiri ×1
ruby ×1
scala ×1
timezone ×1
validation ×1
xml ×1