Я пытаюсь применить функцию (которая работает с обычными кадрами данных) для потоковой передачи данных. Перед применением этой функции мне нужно использовать .rdd.takeSample () для заданных данных, но, конечно, это не работает с потоковыми фреймами данных.
Я получаю свои потоковые данные, используя следующий структурированный код потоковой передачи:
dsraw = spark \
.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers", "192.168.99.100:9092") \
.option("subscribe", "topic") \
.option("startingOffsets", "earliest") \
.load()
ds = dsraw.selectExpr("CAST(value AS STRING)")
Мои данные - это набор случайных чисел в виде {'число': 1} и т. Д. c. В идеале я хочу поместить все числа, считанные из этого потока, в фрейм данных и вернуть его.
Есть ли способ конвертировать потоковый фрейм данных в искровой фрейм данных или в rdd? Если нет, есть ли альтернативный метод для takeSample?