我正在用 python 设计一个 BigQuery 作业,它更新并插入到多个表中。我想到了两种方法来实现这一目标:
执行查询作业并将结果保存到带有更新/插入指示器的临时表中,然后处理它们。但是不清楚如何使用 python 库进行更新。
将整个数据加载到新的分区表中并跳过更新/插入。它需要比我想要的更多空间,但无论如何分区都会在几天内过期。
我错过了什么吗?还有其他方法可以实现这一目标吗?
我尝试做的是使用 XML 解析器解析字符串。
我只找到这种在 Scala 中使用 Spark 进行解析的方法:
val df = sqlContext
.read
.format("com.databricks.spark.xml")
.option("rowTag", "book")
.load("books.xml")
Run Code Online (Sandbox Code Playgroud)
我需要解析的是一个字符串,而不是一个文件
那么,是否有任何选项可以加载字符串(而不是文件路径)?
谢谢!
我正在尝试使用 Cassandra Spark 连接器将 rdd 与 Cassandra Table 连接起来:
samplerdd.joinWithCassandraTable(keyspace, CassandraParams.table)
.on(SomeColumns(t.date as a.date,
t.key as a.key)
Run Code Online (Sandbox Code Playgroud)
它在独立模式下工作,但是当我在集群模式下执行时,出现此错误:
Job aborted due to stage failure: Task 6 in stage 0.0 failed 4 times, most recent failure: Lost task 6.3 in stage 0.0 (TID 20, 10.10.10.51): java.io.InvalidClassException: com.datastax.spark.connector.rdd.CassandraJoinRDD; local class incompatible: stream classdesc serialVersionUID = 6155891939893411978, local class serialVersionUID = 1245204129865863681
Run Code Online (Sandbox Code Playgroud)
我已经检查了 master 和 slaves 中的 jars 并且它似乎是相同的版本。
我使用 spark 2.0.0、Cassandra 3.7、Cassandra-Spark Connector 2.0.0 M2、Cassandra Driver Core 3.1.0 和 Scala 2.11.8
会发生什么?