1-我试图一次删除多个分区,但努力用Impala或Hive来做.我尝试了以下查询,有和没有':
ALTER TABLE cz_prd_corrti_st.s1mme_transstats_info DROP IF EXISTS
PARTITION (pr_load_time='20170701000317')
PARTITION (pr_load_time='20170701000831')
我得到的错误如下:
AnalysisException:第3行中的语法错误:PARTITION(pr_load_time ='20170701000831')^遇到:PARTITION预期:CACHED,LOCATION,PURGE,SET,UNCACHED CAUSED BY:异常:语法错误
分区列是bigint类型,只删除一个分区的查询按预期工作:
ALTER TABLE cz_prd_corrti_st.s1mme_transstats_info DROP IF EXISTS
PARTITION (pr_load_time='20170701000317')
Run Code Online (Sandbox Code Playgroud)
2-首先删除hdfs数据然后删除Impala/Hive中的分区,或者它应该是反之亦然?
在这篇文章之后,我试图实现一个自定义AuthenticationHandler,但我陷入了依赖注入。
我需要将一个IRepository实例注入到 中AuthenticationHandler以提供 dbo 连接(以检查凭据)。
代码:
public class CustomAuthenticationHandler : AuthenticationHandler<CustomAuthenticationOptions>
{
// how to inject this?!
private IRepository repository;
public CustomAuthenticationHandler(IOptionsMonitor<CustomAuthenticationOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock)
: base(options, logger, encoder, clock) {
}
protected override Task<AuthenticateResult> HandleAuthenticateAsync()
{
// this is just a sample
if (repository.users.Count(w => w.user_name == Request.Headers["user_name"] && w.password == Request.Headers["password"]) == 1)
{
return Task.FromResult(
AuthenticateResult.Success(
new AuthenticationTicket(
new ClaimsPrincipal(Options.Identity),
new AuthenticationProperties(),
this.Scheme.Name)));
}
return …Run Code Online (Sandbox Code Playgroud) 当我尝试打印a时PictureBox,ArgumentException抛出一个(参数无效).
这是打印功能:
void pdGroupBox_PrintPage(object sender, PrintPageEventArgs e)
{
foreach(Control control in _GbFrm.Controls)
DrawControls(control, e.Graphics);
}
private void DrawControls(Control control,Graphics g)
{
var font = new Font("Arial", 10);
var brush = new SolidBrush(Color.Black);
var drawFormat = new StringFormat
{
FormatFlags = StringFormatFlags.DirectionRightToLeft
};
if (control is Label)
{
if ((string)control.Tag == "1") //Treated with 1 columns of fields.
{
g.DrawString(
control.Text, font, brush,
new Rectangle(control.Location.X - 160, control.Location.Y, control.Size.Width + 10, control.Size.Height),
drawFormat);
}
if ((string)control.Tag == …Run Code Online (Sandbox Code Playgroud) 我正面临一个问题.我希望在angular2中获得一个htmlelement,这是我的看法
<p>
<button (click)="setJSON()">Set JSON</button>
<button (click)="getJSON()">Get JSON</button>
</p>
<div id="jsoneditor">
</div>
Run Code Online (Sandbox Code Playgroud)
我想访问我班级中的jsoneditor并将其传递给我的JSONEditor https://github.com/josdejong/jsoneditor/blob/master/docs/api.md告诉它在哪里渲染编辑器.
这是我的班级:
export class JsonComponent {
container: HTMLElement;
editor1: JSONEditor;
options;
constructor(public router: Router, public element: ElementRef) {
this.container = this.element.nativeElement
this.options = { "mode": "tree", "search": true };
this.editor1 = new JSONEditor(this.container,this. options);
var json = {
"Array": [1, 2, 3],
"Boolean": true,
"Null": null,
"Number": 123,
"Object": { "a": "b", "c": "d" },
"String": "Hello World"
};
this. editor1.set(json);
this. editor1.expandAll();
}
setJSON() { …Run Code Online (Sandbox Code Playgroud) 让这个JSON字符串:
[
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
]
Run Code Online (Sandbox Code Playgroud)
让我们上课:
export class MyObject{
id: number;
text: string;
}
Run Code Online (Sandbox Code Playgroud)
如何将此JSON字符串转换为列表MyObject?
如果我做:
console.log(<MyObject[]>JSON.parse(json_string));
Run Code Online (Sandbox Code Playgroud)
它返回一个列表Object而不是列表MyObject
假设我们必须通过异步流向数据库写下1000个元素的列表.是等待1000次异步插入语句,还是将所有1000个插入包装在一个封装到Task.Run语句中的单个同步方法中等待一次?
例如,SqlCommand每个方法都加上他的async版本.在这种情况下,我们有一个insert语句,所以我们可以调用ExecuteNonQuery或ExecuteNonQueryAsync.
通常,在异步/等待指南上,我们读到如果您有某个方法可用的异步版本,则应该使用它.所以我们写一下:
async Task Save(IEnumerable<Savable> savables)
{
foreach(var savable in savables)
{
//create SqlCommand somehow
var sqlCmd = CreateSqlCommand(savable);
//use asynchronous version
await sqlCmd.ExecuteNonQueryAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码很清楚.但是,每次从await部分出来时,它也会在UI线程上返回,然后在遇到的下一个await中返回后台线程,依此类推(不是吗?).这意味着用户可以看到一些延迟,因为UI线程不断地被继续await执行下一个foreach周期而中断,并且在那段时间内UI冻结了一点.
我想知道我是否更好地编写这样的代码:
async Task Save(IEnumerable<Savable> savables)
{
await Task.Run(() =>
{
foreach(var savable in savables)
{
//create SqlCommand somehow
var sqlCmd = CreateSqlCommand(savable);
//use synchronous version
sqlCmd.ExecuteNonQuery();
}
});
}
Run Code Online (Sandbox Code Playgroud)
以这种方式,整个foreach在辅助线程上执行,而在UI线程和辅助线程之间没有连续切换.这意味着UI线程可以在整个持续时间内foreach(例如微调器或进度条)自由更新View ,也就是说,用户不会感知到任何延迟.
我对吗?或者我错过了一些关于"异步一直向下"的事情?
我不是在寻找简单的基于意见的答案,我正在寻找async/await指南的解释,以及解决它的最佳方法.
编辑: …
I cannot find out how to filter an array/list from another list array: I was looking for something like this:
IEnumerable<bool> Filter = new[] { true, true, false,true };
IEnumerable<string> Names = new[] { "a", "B", "c", "d" };
List<string> NameFiltered = Filter
.Where(c => c == true)
.Select(x => Names)
.ToList();
Run Code Online (Sandbox Code Playgroud) 我制作了一个计算器应用程序,并制作了一个clear清除 TextView的按钮。
private TextView _screen;
private String display = "";
private void clear() {
display = "";
currentOperator = "";
result = "";
}
Run Code Online (Sandbox Code Playgroud)
我从教程中获得了这段代码,并将清除按钮设置onClick为onClickClear,因此它执行了代码的那部分并且可以正常工作。现在我让这段代码一次只删除一个数字,但它不起作用。一次只删除一个号码可以做什么?
public void onClickdel(View v) {
display = "";
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有简单输入标签的 angular6 应用程序:
<input type="text" name="searchBox" [(ngModel)]="searchTerm" class="form-control" />
Run Code Online (Sandbox Code Playgroud)
我想对属性进行可观察searchTerm以添加一些运算符debounce,例如 等。
我怎样才能做到这一点(不使用ReactiveForms)?
c# ×4
angular ×2
android ×1
asp.net ×1
asp.net-core ×1
async-await ×1
boolean ×1
c#-5.0 ×1
casting ×1
exception ×1
hdfs ×1
hive ×1
ienumerable ×1
impala ×1
json ×1
linq ×1
object ×1
partitioning ×1
rxjs ×1
sql ×1
typescript ×1
winforms ×1