小编bel*_*cea的帖子

如何通过Google Analytics Reporting API v4进行身份验证

我很难使用Node.js客户端库Google Analytics Reporting API v4进行身份验证.我尝试了所有方法,从JWT(服务令牌:JSON和P12),API密钥和OAuth 2.0开始,但我从未成功通过身份验证.

我在开发人员控制台中激活了API,创建了ID并授予了我的Google Analytics(分析)属性和视图的权限.我成功获得了服务帐户的授权和访问令牌,但我不知道如何使用它来对Analytics Reporting API v4进行身份验证.

我被困在401错误消息前面:"请求没有有效的身份验证凭据".我尝试使用JWT模仿用户,但随后服务帐户未经授权.

使用Node.js客户端库和JWT身份验证:

var google = require('googleapis.js');

var viewID = 'XXXXXXXXX'; // Google Analytics view ID
var key = require('service_account.json'); // Service account

var jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/analytics.readonly'], null);
var oauth2Client = new google.auth.OAuth2();

jwtClient.authorize(function(err, result) {
  if (err) {
    console.log('Unauthorize');
    console.log(err);
    return;
  }

  oauth2Client.setCredentials({
    access_token: result.access_token
  });

  //Need to authenticate somewhere near here
  var analytics = google.analyticsreporting('v4');
  //Or here

  var req = …
Run Code Online (Sandbox Code Playgroud)

authentication api google-analytics node.js

8
推荐指数
1
解决办法
3274
查看次数

Spark 无法计算表达式:窗口表达式的滞后

我正在尝试对 cassandra 表中的数据帧执行大量操作,然后将其保存在另一个表中。其中一项操作如下:

val leadWindow = Window.partitionBy(col("id")).orderBy(col("timestamp").asc).rowsBetween(Window.currentRow, 2)
df.withColumn("lead1", lag(sum(col("temp1")).over(leadWindow), 2, 0))
Run Code Online (Sandbox Code Playgroud)

当我运行我的工作时,我收到一个异常,说lag无法评估该操作。

2018-10-08 12:02:22 INFO  Cluster:1543 - New Cassandra host /127.0.0.1:9042 added
    2018-10-08 12:02:22 INFO  CassandraConnector:35 - Connected to Cassandra cluster: Test Cluster
    2018-10-08 12:02:23 INFO  CassandraSourceRelation:35 - Input Predicates: [IsNotNull(ts)]
    2018-10-08 12:02:23 INFO  CassandraSourceRelation:35 - Input Predicates: [IsNotNull(ts)]
    Exception in thread "main" java.lang.UnsupportedOperationException: Cannot evaluate expression: lag(input[43, bigint, true], 2, 0)
            at org.apache.spark.sql.catalyst.expressions.Unevaluable$class.doGenCode(Expression.scala:258)
            at org.apache.spark.sql.catalyst.expressions.OffsetWindowFunction.doGenCode(windowExpressions.scala:326)
            at org.apache.spark.sql.catalyst.expressions.Expression$$anonfun$genCode$2.apply(Expression.scala:107)
            at org.apache.spark.sql.catalyst.expressions.Expression$$anonfun$genCode$2.apply(Expression.scala:104)
            at scala.Option.getOrElse(Option.scala:121)
            at org.apache.spark.sql.catalyst.expressions.Expression.genCode(Expression.scala:104)
            at org.apache.spark.sql.catalyst.expressions.BinaryExpression.nullSafeCodeGen(Expression.scala:496)
            at …
Run Code Online (Sandbox Code Playgroud)

scala cassandra apache-spark spark-cassandra-connector

6
推荐指数
1
解决办法
7840
查看次数

气流显示超过365 dagrun

我想在 Airflow 任务持续时间图表上显示超过 365 个 dagrun。我找到了source中定义下拉列表值的位置,但我不想为此分叉整个项目。还有其他办法吗?

user-interface directed-acyclic-graphs airflow

5
推荐指数
1
解决办法
483
查看次数

如何在 Nuxt 配置中设置 .env 文件路径?

我正在从@nuxtjs/dotenv模块迁移到 Nuxt 新的运行时配置。我尝试遵循官方指南,但找不到指定 env 文件路径的方法,并且我的默认 .env 文件在构建时未加载。

有没有办法在不使用 @nuxtjs/dotenv 的情况下在 nuxt.config.js 中设置 .env 文件路径?

config filepath nuxt.js dotenv

5
推荐指数
1
解决办法
215
查看次数

Spark Cassandra 将数据集追加到具有空值的表中

我使用DataStax Spark 连接器来填充 Cassandra 集群并处理不同作业中的数据(由于 Spark 不支持流处理的一些操作,例如双重聚合)。所以我想将不同作业的数据存储在同一个表中。假设第一个流作业在此表中插入一行(使用 foreach 编写器,因为连接器尚不支持流式写入)。

INSERT INTO keyspace_name.table_name (id, col1, col2) VALUES ("test", 1, null);
Run Code Online (Sandbox Code Playgroud)

如果我附加(更新插入)其中包含空列的数据集,而 Cassandra 中该行已经有非空值,该怎么办?

// One row of the dataset = "test", null, 2
dataset.write
  .format("org.apache.spark.sql.cassandra")
    .option("keyspace", keyspace)
  .option("table", table)
  .mode(SaveMode.Append)
  .save()
Run Code Online (Sandbox Code Playgroud)

如果我正确理解文档,以前的非空值将被新的空值覆盖?如果是这样,有没有办法保留现有的非空值?或者我是否必须将每个作业的数据存储在单独的表中?

scala insert-update cassandra apache-spark spark-cassandra-connector

0
推荐指数
1
解决办法
723
查看次数