【发布时间】:2021-03-24 06:42:40
【问题描述】:
以下代码动态创建字符串,这是要运行的 athena 查询。 它总是在 las 字符串行中添加一个不必要的新行。 我在下面这样做了
arr = ["ee/User:1", "ww/User:2", ..., "ww/User:n"]
let len = arr.length;
columns = []
qq = "create external table users(";
for (let i = 0; i <= len - 1; i++) {
let pp = arr[i].toLowerCase();
//console.log(pp);
pp = pp.replace("/", "_")
pp = pp.replace(":", "_")
pp = "`" + pp + "` String,"
console.log(pp) // here also comming new line
colnames.push(pp)
}
let k = colnames.join("\n")
qq = qq + k;
console.log(qq)
它构建了错误的查询,如下所示
create external table users( `ee_user_1` String,
`ww_user_2` String,
....
`ww_user_n
`String,)
最后一项不知道为什么不需要换行
【问题讨论】:
-
我可以知道为什么消极吗?
-
我没有投反对票,但您应该提供一个我们可以运行的代码示例,而不是一个粗略的近似值。您的代码甚至不连贯,因为您在一个地方有
columns,在另一个地方有colnames,还有一个未声明的len变量等。请参阅:stackoverflow.com/help/how-to-ask -
什么是
len?正常的写法是i < len。 -
我看不出这段代码可以在
String之前添加换行符。 -
您的输入数组
arr在最后一个字符串的末尾是否有换行符?
标签: javascript node.js amazon-athena