SparkインタープリターでZeppelin0.8.0のScalaコードを使用しようとしています。
%spark
import scala.beans.BeanProperty
class Node(@BeanProperty val parent: Option[Node]) {
}
しかし、輸入は考慮されていないようです
import scala.beans.BeanProperty
<console>:14: error: not found: type BeanProperty
@BeanProperty val parent: Option[Node]) {
^
編集:私は次のコードが機能することを発見しました:
class Node(@scala.beans.BeanProperty val parent: Option[Node]) {
}
これも正常に機能します:
def loadCsv(CSVPATH: String): DataFrame = {
import org.apache.spark.sql.types._
//[...] some code
val schema = StructType(
firstRow.map(s => StructField(s, StringType))
)
//[…] some code again
}
したがって、中括弧の間にインポートするかpath.to.package.Class
、使用時に直接指定すると、すべてが正常に機能すると思います。
質問:クラス/関数定義の外部にインポートするにはどうすればよいですか?
によるインポートpath.to.package.Class
はツェッペリンでうまく機能します。java.sql.Date
;をインポートして使用して試すことができます。
import java.sql.Date
val date = Date.valueOf("2019-01-01")
問題はZeppelinコンテキストに関するものです。Zeppelinで次のコードスニペットを使用しようとすると、正常に機能することがわかります。
object TestImport {
import scala.beans.BeanProperty
class Node(@BeanProperty val parent: Option[Node]){}
}
val testObj = new TestImport.Node(None)
testObj.getParent
//prints Option[Node] = None
お役に立てば幸いです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加