小编wgw*_*wgw的帖子

哎呀!使用保留字来命名列

我创建了一个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数据并重新开始.似乎更改字段名称不是一个很大的功能..但我对数据的存储方式很天真.

谢谢!

google-bigquery

12
推荐指数
1
解决办法
3478
查看次数

Javascript之谜:函数中的变量

好吧,我很难过,主要是因为我没有足够使用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)

javascript function

3
推荐指数
1
解决办法
428
查看次数

BigQuery REGEXP_MATCH和重音:边界通配符失败?

在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.

谢谢!

regex google-apps-script google-bigquery

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