- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Spark sql DataSet 将数据写入配置单元。如果架构相同,它会完美运行,但如果我更改 avro 架构,在两者之间添加新列,它会显示错误(架构由架构注册表提供)
Error running job streaming job 1519289340000 ms.0
org.apache.spark.sql.AnalysisException: The column number of the existing table default.sample(struct<collection_timestamp:bigint,managed_object_id:string,managed_object_type:string,if_admin_status:string,date:string,hour:int,quarter:bigint>) doesn't match the data schema(struct<collection_timestamp:bigint,managed_object_id:string,if_oper_status:string,managed_object_type:string,if_admin_status:string,date:string,hour:int,quarter:bigint>);
if_oper_status
是必须添加新列。请提出建议。
StructType struct = convertSchemaToStructType(SchemaRegstryClient.getLatestSchema("simple"));
Dataset<Row> dataset = getSparkInstance().createDataFrame(newRDD, struct);
dataset=dataset.withColumn("date",functions.date_format(functions.current_date(), "dd-MM-yyyy"));
dataset=dataset.withColumn("hour",functions.hour(functions.current_timestamp()));
dataset=dataset.withColumn("quarter",functions.floor(functions.minute(functions.current_timestamp()).divide(5)));
dataset
.coalesce(1)
.write().mode(SaveMode.Append)
.option("charset", "UTF8")
.partitionBy("date","hour","quarter")
.option("checkpointLocation", "/tmp/checkpoint")
.saveAsTable("sample");
最佳答案
我能够通过将架构从注册表保存到文件并提供如下 avro.schema.url = 文件路径来解决此问题。
注意:这必须在 saveAsTable("sample")
dataset.sqlContext().sql("CREATE EXTERNAL TABLE IF NOT EXISTS sample PARTITIONED BY (dt STRING, hour STRING, quarter STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' STORED as INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat' LOCATION 'hdfs://localhost:9000/user/root/sample' TBLPROPERTIES ('avro.schema.url'='file://"+file.getAbsolutePath()+"')");
关于apache-spark - 如果在 avro 模式中添加新列,则 Spark sql saveAsTable 创建表追加模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48923603/
我正在使用Spark 1.3,并且试图从一个RDD生成一个表。这是伪代码: val sc = new org.apache.spark.SparkContext(conf) val sqlContex
这可能是一个愚蠢的问题,因为缺乏 spark 的一些基础知识,我试试这个: SparkSession spark = SparkSession.builder().appName("spark ...
如何向现有表中插入新数据??? 我正在尝试使用 pyspark 将新数据插入现有表。 这是我的程序 from pyspark import SparkContext from pyspark.sql
我们有一个初始阶段可以适当扩展的管道 - 每个使用几十个 worker 。 最后阶段之一是 dataFrame.write.format(outFormat).mode(saveMode). part
我正在使用以下代码在 Spark SQL 中创建数据/将数据插入到 Hive 表中: val sc = SparkSession .builder() .appName("App") .m
上下文 Spark 2.0.1,集群模式下的spark-submit。我正在从 hdfs 读取 Parquet 文件: val spark = SparkSession.builder .
我用hadoop 2.6.3、spark 2.0.0(之前是1.6.1)、hive 2.0配置了一个hadoop集群; 最近,我更改了 hadoop 端口规范。一项重大更改是针对 core-site.
我们正在尝试从 SPARK 写入 HIVE 表,我们正在使用 saveAsTable 函数。我想知道 saveAsTable 是否每次都删除并重新创建配置单元表?如果这样做,那么是否有任何其他可能的
有谁知道我在哪里可以找到 pyspark.sql.DataFrameWriter 中 saveAsTable() 函数的可用格式列表?在 the documentation它只是说“用于保存的格式”。
我需要在 for 循环中执行一组不同的 hive 查询。 hc=HiveContext(sc) queryList=[set of queries] for i in range(0,X):
我使用的是 2.4.0 Spark-core 和 Spark-sql。 我正在尝试创建 sparkSession,然后创建一个范围,然后将其写入表。 使用 Scala 以下代码有效 val spark
我正在尝试使用 saveAsTable 将数据框保存为表格很好用,但我想将表保存到不是默认数据库,有谁知道是否有办法设置要使用的数据库?我尝试使用 hiveContext.sql("use db_na
使用 saveAsTable 附加到 Hive 管理的表时,不完整的 saveAsTable 完成的工作会回滚,还是部分信息会保留? 最佳答案 用spark写表时没有“回滚”的概念。当您 saveAs
我正在尝试写一个 DataFrame进入 Hive表(在 S3 上)在 Overwrite模式(对于我的应用程序是必需的)并且需要在 DataFrameWriter (Spark/Scala) 的两种
我正在使用 Spark 3.0.1,我的分区表存储在 s3 中。请在此处找到问题的描述。 创建表 Create table root_table_test_spark_3_0_1 ( id s
我想使用画面显示来自 HDInsight SPARK 的数据。我在关注 this video他们在其中描述了如何连接两个系统并公开数据。 目前我的脚本本身非常简单,如下所示: /* csvFile
我在配置单元上运行 spark sql。我需要在创建新的配置单元表时添加 auto.purge 表属性。我尝试使用以下代码在调用 saveAsTable 方法时添加选项: inputDF.write.
我已经用 Spark (1.4.0) 配置了 Hive (1.13.1),我可以从 hive 访问所有数据库和表,我的仓库目录是 hdfs://192.168.1.17:8020/用户/ hive /
I am getting the below error stack trace while creating a Delta table. Spark version 3.2.1创建增量表时,
我想知道这两个命令之间的性能(阅读时)是否存在差异?: df.write.format('parquet').partitionBy(xx).save('/.../xx.parquet')df.wri
我是一名优秀的程序员,十分优秀!