<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to provide custom class extending SparkPlugin/ExecutorPlugin in Databricks 7.3? in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/how-to-provide-custom-class-extending-sparkplugin-executorplugin/m-p/11892#M6807</link>
    <description>&lt;P&gt;Hello @Krishna Kashiv​&amp;nbsp;- I don't know if we've met yet. My name is Piper and I'm a community moderator here. Thank you for your new question. It looks thorough! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's give it a while to see what our members have to say. Otherwise, we will circle back to this.&lt;/P&gt;</description>
    <pubDate>Mon, 01 Nov 2021 16:39:31 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2021-11-01T16:39:31Z</dc:date>
    <item>
      <title>How to provide custom class extending SparkPlugin/ExecutorPlugin in Databricks 7.3?</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-provide-custom-class-extending-sparkplugin-executorplugin/m-p/11891#M6806</link>
      <description>&lt;P&gt;How to properly configure the jar containing the class and spark plugin in Databricks?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;During DBR 7.3 cluster creation, I tried by setting the spark.plugins, spark.driver.extraClassPath and spark.executor.extraClassPath Spark configs by copying the jar reqd in /tmp folder.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;class PtyExecSparkPlugin extends ExecutorPlugin  {
&amp;nbsp;
  private val logger: Logger = LoggerFactory.getLogger(Utils.logName(this.getClass))
&amp;nbsp;
  override def shutdown(): Unit = {
   //custom code statements
  }
}&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;However the cluster creation fails with com.example.spark.PtyExecSparkPlugin not found in com.databricks.backend.daemon.driver.ClassLoaders$LibraryClassLoader@622d7e4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Full log4j logs:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;21/11/01 13:33:01 ERROR SparkContext: Error initializing SparkContext.
java.lang.ClassNotFoundException: com.protegrity.spark.PtyExecSparkPlugin not found in com.databricks.backend.daemon.driver.ClassLoaders$LibraryClassLoader@622d7e4
	at com.databricks.backend.daemon.driver.ClassLoaders$MultiReplClassLoader.loadClass(ClassLoaders.scala:115)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at org.apache.spark.util.Utils$.classForName(Utils.scala:226)
	at org.apache.spark.util.Utils$.$anonfun$loadExtensions$1(Utils.scala:3006)
	at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:245)
	at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
	at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
	at scala.collection.TraversableLike.flatMap(TraversableLike.scala:245)
	at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:242)
	at scala.collection.AbstractTraversable.flatMap(Traversable.scala:108)
	at org.apache.spark.util.Utils$.loadExtensions(Utils.scala:3004)
	at org.apache.spark.internal.plugin.PluginContainer$.apply(PluginContainer.scala:160)
	at org.apache.spark.internal.plugin.PluginContainer$.apply(PluginContainer.scala:146)
	at org.apache.spark.SparkContext.&amp;lt;init&amp;gt;(SparkContext.scala:591)
	at com.databricks.backend.daemon.driver.DatabricksILoop$.$anonfun$initializeSharedDriverContext$1(DatabricksILoop.scala:347)
	at com.databricks.backend.daemon.driver.ClassLoaders$.withContextClassLoader(ClassLoaders.scala:29)
	at com.databricks.backend.daemon.driver.DatabricksILoop$.initializeSharedDriverContext(DatabricksILoop.scala:347)
	at com.databricks.backend.daemon.driver.DatabricksILoop$.getOrCreateSharedDriverContext(DatabricksILoop.scala:277)
	at com.databricks.backend.daemon.driver.DriverCorral.com$databricks$backend$daemon$driver$DriverCorral$$driverContext(DriverCorral.scala:179)
	at com.databricks.backend.daemon.driver.DriverCorral.&amp;lt;init&amp;gt;(DriverCorral.scala:216)
	at com.databricks.backend.daemon.driver.DriverDaemon.&amp;lt;init&amp;gt;(DriverDaemon.scala:39)
	at com.databricks.backend.daemon.driver.DriverDaemon$.create(DriverDaemon.scala:211)
	at com.databricks.backend.daemon.driver.DriverDaemon$.wrappedMain(DriverDaemon.scala:216)
	at com.databricks.DatabricksMain.$anonfun$main$1(DatabricksMain.scala:106)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at com.databricks.DatabricksMain.$anonfun$withStartupProfilingData$1(DatabricksMain.scala:321)
	at com.databricks.logging.UsageLogging.$anonfun$recordOperation$4(UsageLogging.scala:431)
	at com.databricks.logging.UsageLogging.$anonfun$withAttributionContext$1(UsageLogging.scala:239)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
	at com.databricks.logging.UsageLogging.withAttributionContext(UsageLogging.scala:234)
	at com.databricks.logging.UsageLogging.withAttributionContext$(UsageLogging.scala:231)
	at com.databricks.DatabricksMain.withAttributionContext(DatabricksMain.scala:74)
	at com.databricks.logging.UsageLogging.withAttributionTags(UsageLogging.scala:276)
	at com.databricks.logging.UsageLogging.withAttributionTags$(UsageLogging.scala:269)
	at com.databricks.DatabricksMain.withAttributionTags(DatabricksMain.scala:74)
	at com.databricks.logging.UsageLogging.recordOperation(UsageLogging.scala:412)
	at com.databricks.logging.UsageLogging.recordOperation$(UsageLogging.scala:338)
	at com.databricks.DatabricksMain.recordOperation(DatabricksMain.scala:74)
	at com.databricks.DatabricksMain.withStartupProfilingData(DatabricksMain.scala:321)
	at com.databricks.DatabricksMain.main(DatabricksMain.scala:105)
	at com.databricks.backend.daemon.driver.DriverDaemon.main(DriverDaemon.scala)
Caused by: java.lang.ClassNotFoundException: com.protegrity.spark.PtyExecSparkPlugin
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
	at com.databricks.backend.daemon.driver.ClassLoaders$LibraryClassLoader.loadClass(ClassLoaders.scala:151)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
	at com.databricks.backend.daemon.driver.ClassLoaders$MultiReplClassLoader.loadClass(ClassLoaders.scala:112)
	... 43 more
21/11/01 13:33:02 INFO AbstractConnector: Stopped Spark@b6bccb4{HTTP/1.1,[http/1.1]}{10.88.234.70:40001}
21/11/01 13:33:02 INFO SparkUI: Stopped Spark web UI at &lt;A href="http://10.88.234.70:40001" target="test_blank"&gt;http://10.88.234.70:40001&lt;/A&gt;
21/11/01 13:33:02 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
21/11/01 13:33:02 INFO MemoryStore: MemoryStore cleared
21/11/01 13:33:02 INFO BlockManager: BlockManager stopped
21/11/01 13:33:02 INFO BlockManagerMaster: BlockManagerMaster stopped
21/11/01 13:33:02 WARN MetricsSystem: Stopping a MetricsSystem that is not running
21/11/01 13:33:02 INFO OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator stopped!
21/11/01 13:33:02 INFO SparkContext: Successfully stopped SparkContext&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Nov 2021 14:13:13 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-provide-custom-class-extending-sparkplugin-executorplugin/m-p/11891#M6806</guid>
      <dc:creator>krishnakash</dc:creator>
      <dc:date>2021-11-01T14:13:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to provide custom class extending SparkPlugin/ExecutorPlugin in Databricks 7.3?</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-provide-custom-class-extending-sparkplugin-executorplugin/m-p/11892#M6807</link>
      <description>&lt;P&gt;Hello @Krishna Kashiv​&amp;nbsp;- I don't know if we've met yet. My name is Piper and I'm a community moderator here. Thank you for your new question. It looks thorough! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's give it a while to see what our members have to say. Otherwise, we will circle back to this.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Nov 2021 16:39:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-provide-custom-class-extending-sparkplugin-executorplugin/m-p/11892#M6807</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-11-01T16:39:31Z</dc:date>
    </item>
  </channel>
</rss>

