Pyspark Не удалось найти источник данных: kafka - PullRequest
0 голосов
/ 06 ноября 2019

Я работаю над потоковой передачей Kafka и пытаюсь интегрировать ее с Apache Spark. Однако во время бега у меня возникают проблемы. Я получаю приведенную ниже ошибку.

Я использую эту команду.

df_TR = Spark.readStream.format("kafka").option("kafka.bootstrap.servers", "localhost:9092").option("subscribe", "taxirides").load()

ОШИБКА:

Py4JJavaError: Ошибка произошла во времяВызов o77.load .: java.lang.ClassNotFoundException: Не удалось найти источник данных: kafka. Пожалуйста, найдите пакеты на http://spark.apache.org/third-party-projects.html

Как я могу решить эту проблему?

ПРИМЕЧАНИЕ: я запускаю это в Jupyter Notebook

findspark.init('/home/karan/spark-2.1.0-bin-hadoop2.7')
import pyspark
from pyspark.sql import SparkSession
Spark = SparkSession.builder.appName('KafkaStreaming').getOrCreate()
from pyspark.sql.types import *
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils

Пока все работает нормально (код выше)

df_TR = Spark.readStream.format("kafka").option("kafka.bootstrap.servers", "localhost:9092").option("subscribe", "taxirides").load()

Этоздесь все идет не так (код выше).

Блог, за которым я слежу: https://www.adaltas.com/en/2019/04/18/spark-streaming-data-pipelines-with-structured-streaming/

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Непонятно, как вы запустили код. Продолжайте читать блог, и вы увидите

spark-submit \
  ...
  --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0 \
  sstreaming-spark-out.py

Кажется, вы пропустили добавление флага --packages

В Jupyter вы можете добавить это

import os

# setup arguments
submit_args = '--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0'
if 'PYSPARK_SUBMIT_ARGS' not in os.environ:
    os.environ['PYSPARK_SUBMIT_ARGS'] = submit_args
else:
    os.environ['PYSPARK_SUBMIT_ARGS'] += submit_args

# initialize spark
import pyspark
findspark.init()
0 голосов
/ 06 ноября 2019

Я думаю, вам нужно указать абсолютный путь к jar-файлу kafka, во время команды spark-submit, как показано ниже:

./bin/spark-submit --jars spark-streaming-kafka-0-8-assembly_2.11-2.0.0.jar

Вы можете скачать jar-файл с здесь . Для получения подробной информации см. this .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...