我创建了一个bigquery表,其中一列名为"row"(没有引号)... doh!现在,如果我引用该列,我的sql将无法编译:
SELECT row, etext FROM [hcd.hdctext] LIMIT 1; =ERROR"
Run Code Online (Sandbox Code Playgroud)
我没有在GQL中看到"ROW"作为保留字...
我在一些系统中看到你可以用反引号解决这个问题:
SELECT `row`, etext FROM [hcd.hdctext] LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在bigquery中做同样的事情吗?否则我将重新上载我的200M数据并重新开始.似乎更改字段名称不是一个很大的功能..但我对数据的存储方式很天真.
谢谢!
好吧,我很难过,主要是因为我没有足够使用javascript.我知道这是一个数组指针问题(我必须在函数中复制数组...),但不知道如何解决它.我能解释为什么我的Javascript版本不起作用而Python版本有用吗?它应该反转一个数组(我知道有一个内置的),但我的问题是:Javascript中的数组与Python中的处理方式有何不同?
Javascript (does not work):
function reverseit(x) {
if (x.length == 0) { return ""};
found = x.pop();
found2 = reverseit(x);
return found + " " + found2 ;
};
var out = reverseit(["the", "big", "dog"]);
// out == "the the the"
Run Code Online (Sandbox Code Playgroud)
==========================
Python (works):
def reverseit(x):
if x == []:
return ""
found = x.pop()
found2 = reverseit(x)
return found + " " + found2
out = reverseit(["the", "big", "dog"]);
// out == "dog big the"
Run Code Online (Sandbox Code Playgroud) 在GAS中,我可以正确地将重音符号与具有边界字符的正则表达式匹配,例如\bà\ b.字符à仅在它是单独的单词时才匹配.这适用于GAS:
function test_regExp() {
var str = "la séance est à Paris";
var RegExp = "\\bà\\b";
var PatReg= new RegExp( RegExp);
var found=PatReg.exec(str);
if (found) {
Logger.log( [str.substring(0,found.index),found[0],str.substring(found[0].length+found.index)] );
} else Logger.log("oops! Did not match");
Run Code Online (Sandbox Code Playgroud)
在BigQuery中,如果边界字符位于重音符号旁边,则模式不匹配.\bséance\ b匹配séance:
SELECT [row],etext,ftext FROM [hcd.hdctextx] WHERE (REGEXP_MATCH(ftext,"\\bséance\\b") ) LIMIT 100;
Run Code Online (Sandbox Code Playgroud)
\bà\ b与单词不匹配:
SELECT [row],etext,ftext FROM [hcd.hdctextx] WHERE (REGEXP_MATCH(ftext,"\\bà\\b") ) LIMIT 100;
Run Code Online (Sandbox Code Playgroud)
我假设BigQuery与GAS不同,它在边界字符集中包含重音.所以\bséance\ b有效,因为é可以在该配置中作为边界正常运行.\bà\ b或\bétranger\ b或\bmarché\ b不起作用,因为重音+\b被解释为\ b\b,它永远不会匹配任何东西.(好吧,我在这里抓住吸管,因为我找不到更好的解释......除了一个bug.)
我不认为这是一个unicode问题,因为它只会在边界位置出现.
因此,目前无法在这些特定的重音配置中使用边界.
有没有办法在BigQuery或其他修复程序中设置Locale?
解决方法:替换(?:[^ a-zA-Zéàïëâê])等等\ b.
谢谢!