我尝试设置一个AWS胶开发端点来测试一个非常简单的ETL脚本,但似乎无法获取目录数据。
我并不担心齐柏林飞艇,只是使用了scala-repl。
spark.catalog.listTables.show->为空。
当我尝试按照自己的emr步骤创建SparkSession时
SparkSession.builder()
.config("hive.metastore.connect.retries", 5)
.config("hive.metastore.client.factory.class", "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory")
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.enableHiveSupport().appName("ETL")
.getOrCreate()
我得到这个结果,没有表格。
18/07/24 09:08:00 WARN ObjectStore: Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0
18/07/24 09:08:00 WARN ObjectStore: Failed to get database default, returning NoSuchObjectException
18/07/24 09:08:01 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException
18/07/24 09:08:01 WARN SparkSession$Builder: Using an existing SparkSession; some configuration may not take effect
我要用这个脚本做什么实际上很简单。 我有一个视图(在spark emr集群上的齐柏林飞艇中创建),具有像年,月,日,x,y,z这样的列,而我只想实现某一天,例如年(当前时间戳),月.. 一天作为镶木地板,并将其附加到分区表中。
如果我有某种方法可以插入和覆盖分区,那就更好了,我希望粘合可以简化调度。 我是否误解了胶水,只是不支持使用标准的sparksession sql only脚本。
雅典娜和更复杂的spark emr作业应稍后读取数据。这似乎是胶水的简单的etl繁琐工作(几乎只是SQL),但是它确实需要目录访问和spark [SparkSession] .write.mode(“ append”)。parquet ...才能起作用。