我是Stackoverflow和Laravel 4的新手,我试图通过jquery ajax提交表单.我serializeArray()表单并使用json提交它.在laravel中,在检查提交的csrf令牌的路径中,转到我的控制器进行过程输入.当_token输入与serializeArray()一样在数组中时,csrf检查不起作用.我必须得到_token值并提交作为单独的ajax数据.我想知道是否有办法告诉csrf过滤器哪里运行检查输入数组的hte字段_token并使用它?这是我的代码:
routes.php文件
Route::post('searchAjax', array('before' => 'csrf',
'uses' => 'SearchController@searchAjax'));
Run Code Online (Sandbox Code Playgroud)
这是我想要读取数组[0] ['_ token]的地方,但我不知道如何告诉它这样做.
index.js
var form = $('#search').serializeArray();
var token = $('#search > input[name="_token"]').val();
$.ajax({
type: 'post',
url: 'searchAjax',
dataType: 'json',
data: { _token: token, form: form },
success: function(data) {
for(var key in data)
{
//alert(key)
}
//alert(data.message);
}
});
Run Code Online (Sandbox Code Playgroud)
我想在ajax调用中删除{_token:token,form:form},并且只有'form',它已经是一个带有_token的数组.这是html:
<form id="search" class="form-horizontal" accept-charset="UTF-8" action="http://testing:998/search" method="POST">
<input type="hidden" value="6GBbv9LmnOdL8UcOsm8DDJ4Bfi6eGcQRlC9SPdL4" name="_token">
<div class="control-group">
<label class="control-label" for="title">Book Titles</label>
<div class="controls">
<input id="title" class="input" type="text" value="click to search book titles" …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个ETL过程,我需要读取每小时的日志文件,对数据进行分区并保存.我正在使用Spark(在Databricks中).日志文件是CSV,因此我阅读它们并应用模式,然后执行我的转换.
我的问题是,如何将每小时的数据保存为镶木地板格式,但是附加到现有数据集?保存时,我需要按数据框中的4列进行分区.
这是我的保存行:
data
.filter(validPartnerIds($"partnerID"))
.write
.partitionBy("partnerID","year","month","day")
.parquet(saveDestination)
Run Code Online (Sandbox Code Playgroud)
问题是如果目标文件夹存在,则save会抛出错误.如果目的地不存在,那么我不会附加我的文件.
我尝试过使用.mode("append")
但我发现Spark有时会在中途失败,所以我最终失去了我的数据写入量以及我还需要写多少.
我正在使用镶木地板,因为分区大大增加了我将来的查询.同样,我必须将数据写为磁盘上的某种文件格式,并且不能使用像Druid或Cassandra这样的数据库.
非常感谢有关如何划分我的数据帧和保存文件(坚持镶木地板或其他格式)的任何建议.