Я хотел вывести безопасную схему из данных JSON, полученных от Кафки.
df = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "localhost:9092").option("subscribe", "input").option("auto.offset.reset", "latest").load()
jsonDF = df.selectExpr("CAST(value AS STRING) jsonData")
Существует несколько решений для stackoverflow:
- ссылка говорит, что нужно сохранить небольшой пакет в файл, вывести схему и затем использовать эту схему для потокового фрейма данных. Хотя этому вопросу год.
- link использует
schema_of_json
и lit
, хотя я не могу заставить его работать с потоковыми DF.
Я знаю, что вывод схемы может быть опасным, но разрабатываемое мной приложение Spark имеет несколько источников с различными схемами (несколько столбцов). Есть ли способ, которым я могу создать схему на основе столбцов в данных json и принудительно привести их к String
, чтобы предотвратить потерю данных.