У меня есть приложение для потоковой передачи с искровым структурированием (прослушивание kafka), которое также считывает данные из постоянной таблицы в s3. Я пытаюсь проверять каждую микробатку на наличие обновлений в таблице. Я пытался
var myTable = spark.table("myTable!")
и
spark.sql("select * from parquet.`s3n://myFolder/`")
Оба не работают в контексте потоковой передачи. Проблема в том, что файл паркета меняется при каждом обновлении, и спарк не запускает ни одной из нормальных команд для обновления, таких как:
spark.catalog.refreshTable("myTable!")
spark.sqlContext.clearCache()
Я также пробовал:
spark.sqlContext.setConf("spark.sql.parquet.cacheMetadata","false")
spark.conf.set("spark.sql.parquet.cacheMetadata",false)
без облегчения. Должен быть способ сделать это. Было бы разумнее использовать вместо JDBC соединение с базой данных?