Azure Event Hubs ile Databricks Connect
Kullanarak Databricks bazı Python kodunu çalıştırmak isterken sorunlarım yüzleşiyorum databricks-connectbu durumda (uzantısı yüklenmiş ve bir Maven bağlı com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.17bulunan Azure EventHub ile entegrasyon için Databricks resmi belgeler
İle bağlantıyla ilgili olarak databricks-connect, her şey iyi ayarlanmış (ile "Tüm testler geçti" databricks-connect test). Maven paketi kümemin com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.17Kitaplıklar bölümünde "Yüklendi" görünüyor).
Hatalı kod bu basit bir satırdır:
encrypted_string = sc._jvm.org.apache.spark.eventhubs.EventHubsUtils.encrypt(to_be_encrypted_string)
Aşağıdaki hata yığınının üretilmesi:
INFO - Receiving data from EventHub using Databricks' PySpark...
20/09/29 17:50:57 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
20/09/29 17:50:59 WARN MetricsSystem: Using default name SparkStatusTracker for source because neither spark.metrics.namespace nor spark.app.id is set.
Traceback (most recent call last):
File "C:\Users\my_user\Desktop\projectABC\src\my_folder\my_project\cli.py", line 86, in <module>
connector()
File "C:\Users\my_user\Desktop\projectABC\.venv\lib\site-packages\click\core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "C:\Users\my_user\Desktop\projectABC\.venv\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Users\my_user\Desktop\projectABC\.venv\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\my_user\Desktop\projectABC\.venv\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\my_user\Desktop\projectABC\.venv\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\my_user\Desktop\projectABC\.venv\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\my_user\Desktop\projectABC\src\my_folder\my_project\cli.py", line 43, in test_data_process
prediction_connector.process_upstream_data()
File "c:\users\my_user\Desktop\projectABC\src\my_folder\my_project\command.py", line 224, in process_upstream_data
df = eventhub_consumer.receive_data_with_pyspark()
File "c:\users\my_user\Desktop\projectABC\src\my_folder\my_project\command.py", line 406, in receive_data_with_pyspark
eventhub_config = self._populate_pyspark_eventhub_config_file(spark_context=sc)
File "c:\users\my_user\Desktop\projectABC\src\my_folder\my_project\command.py", line 428, in _populate_pyspark_eventhub_config_file
eventhub_config = {'eventhubs.connectionString': spark_context._jvm.org.apache.spark.eventhubs.EventHubsUtils.encrypt(self.config.connection_string)}
TypeError: 'JavaPackage' object is not callable
Burada Maven paket kurulumuyla ilgili bariz bir şeyi mi kaçırıyorum? Python ile kullanmak için fazladan bir adım var mı? Yardımınız için teşekkürler !
Yanıtlar
İşlevselliğin bazı sınırlamaları vardır :
Aşağıdaki Databricks özellikleri ve üçüncü taraf platformları desteklenmemektedir:
- Aşağıdaki Databricks Yardımcı Programları: kimlik bilgileri, kitaplık, dizüstü bilgisayar iş akışı ve gereçler.
- Yapılandırılmış Akış (Azure Event Hubs dahil)
- Uzak kümede bir Spark işinin parçası olmayan rastgele kod çalıştırma.
- Delta tablo işlemleri için yerel Scala, Python ve R API'leri (örneğin, DeltaTable.forPath). Ancak, Delta Lake işlemlerine sahip SQL API (spark.sql (...)) ve Delta tablolarındaki normal Spark API (örneğin, spark.read.load) desteklenir.
Ayrıca, Databricks Connect ile tüm kitaplıkların yerel sınıf yolunda olması gerekir. Tipik senaryo, tüm Spark dışı bağımlılıkların, bağımlılıklar içeren kavanozlara paketlenmesidir.