最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Jupyter notebook運(yùn)行Spark+Scala教程

 更新時(shí)間:2020年04月10日 16:51:53   作者:mumumuyanyanyan  
這篇文章主要介紹了Jupyter notebook運(yùn)行Spark+Scala教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

今天在intellij調(diào)試spark的時(shí)候感覺(jué)每次有新的一段代碼,都要重新跑一遍,如果用spark-shell,感覺(jué)也不是特別方便,如果能像python那樣,使用jupyter notebook進(jìn)行編程就很方便了,同時(shí)也適合代碼展示,網(wǎng)上查了一下,試了一下,碰到了很多坑,有些是舊的版本,還有些是版本不同導(dǎo)致錯(cuò)誤,這里就記錄下來(lái)安裝的過(guò)程。

1.運(yùn)行環(huán)境

硬件:Mac

事先裝好:Jupyter notebook,spark2.1.0,scala 2.11.8 (這個(gè)版本很重要,關(guān)系到后面的安裝)

2.安裝

2.1.scala kernel

從github下載

git clone https://github.com/jupyter-scala/jupyter-scala.git

進(jìn)入下載的jupyter-scala目錄下,運(yùn)行

bash jupyter-scala

然后查看

jupyter kernelspec list

表示scala已經(jīng)嵌入到j(luò)upyter notebook

2.2.spark kernel

這個(gè)也比較好裝,但是要注意版本問(wèn)題,我們用的是toree來(lái)裝的,首先要安裝toree

網(wǎng)上的教程通常直接

pip install toree

但是這個(gè)下載的是0.1.0版本,該版本的話問(wèn)題是,后面裝spark kernel后,在jupyter運(yùn)行spark的時(shí)候,默認(rèn)選的是scala2.10.4版本,會(huì)有以下的錯(cuò)誤

[I 03:15:16.677 NotebookApp] Kernel started: 94a63354-d294-4de7-a12c-2e05905e0c45
Starting Spark Kernel with SPARK_HOME=/usr/local/spark
16/11/20 03:15:18 [INFO] o.a.t.Main$$anon$1 - Kernel version: 0.1.0.dev8-incubating-SNAPSHOT
16/11/20 03:15:18 [INFO] o.a.t.Main$$anon$1 - Scala version: Some(2.10.4)
16/11/20 03:15:18 [INFO] o.a.t.Main$$anon$1 - ZeroMQ (JeroMQ) version: 3.2.2
16/11/20 03:15:18 [INFO] o.a.t.Main$$anon$1 - Initializing internal actor system
Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
    at akka.actor.ActorCell$.<init>(ActorCell.scala:336)
    at akka.actor.ActorCell$.<clinit>(ActorCell.scala)
    at akka.actor.RootActorPath.$div(ActorPath.scala:185)
    at akka.actor.LocalActorRefProvider.<init>(ActorRefProvider.scala:465)
    at akka.actor.LocalActorRefProvider.<init>(ActorRefProvider.scala:453)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$2.apply(DynamicAccess.scala:78)
    at scala.util.Try$.apply(Try.scala:192)
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:73)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84)
    at scala.util.Success.flatMap(Try.scala:231)
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:84)
    at akka.actor.ActorSystemImpl.liftedTree1$1(ActorSystem.scala:585)
    at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:578)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:142)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:109)
    at org.apache.toree.boot.layer.StandardBareInitialization$class.createActorSystem(BareInitialization.scala:71)
    at org.apache.toree.Main$$anon$1.createActorSystem(Main.scala:35)
    at org.apache.toree.boot.layer.StandardBareInitialization$class.initializeBare(BareInitialization.scala:60)
    at org.apache.toree.Main$$anon$1.initializeBare(Main.scala:35)
    at org.apache.toree.boot.KernelBootstrap.initialize(KernelBootstrap.scala:72)
    at org.apache.toree.Main$delayedInit$body.apply(Main.scala:40)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at org.apache.toree.Main$.main(Main.scala:24)
    at org.apache.toree.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:736)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
[W 03:15:26.738 NotebookApp] Timeout waiting for kernel_info reply from 94a63354-d294-4de7-a12c-2e05905e0c45

這個(gè)錯(cuò)誤太可怕了,就是版本不對(duì),因?yàn)閟park2.1.0對(duì)應(yīng)的是scala2.11版本的

所以要用下面的方式下載0.2.0版本

pip install https://dist.apache.org/repos/dist/dev/incubator/toree/0.2.0/snapshots/dev1/toree-pip/toree-0.2.0.dev1.tar.gz

后面就可以安裝spark kernel了

jupyter toree install --interpreters=Scala --spark_home=/usr/local/Cellar/apache-spark/2.1.0/libexec --user --kernel_name=apache_toree --interpreters=PySpark,SparkR,Scala,SQL

其中spark_home指的是你的spark的安裝目錄,記住這個(gè)安裝目錄必須到spark中有python之前,比如我的spark中的python(spark中的python文件夾,不是我們自己裝的那個(gè))在 /usr/local/Cellar/apache-spark/2.1.0/libexec

查看結(jié)果

jupyter kernelspec list

安裝成功

3.打開(kāi)jupyter notebook查看效果

有這么多選項(xiàng),可以快樂(lè)的用jupyter notebook進(jìn)行spark了

以上這篇Jupyter notebook運(yùn)行Spark+Scala教程就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pymongo如何通過(guò)oplog獲取數(shù)據(jù)(mongodb)

    pymongo如何通過(guò)oplog獲取數(shù)據(jù)(mongodb)

    使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級(jí)的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過(guò)oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下
    2023-09-09
  • 用python解壓分析jar包實(shí)例

    用python解壓分析jar包實(shí)例

    今天小編就為大家分享一篇用python解壓分析jar包實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python爬蟲(chóng)利器之PhantomJS詳解

    Python爬蟲(chóng)利器之PhantomJS詳解

    這篇文章主要介紹了Python爬蟲(chóng)利器之PhantomJS詳解,PhantomJS是一個(gè)基于WebKit的無(wú)頭瀏覽器,它沒(méi)有圖形界面,但是它可以像傳統(tǒng)的瀏覽器一樣訪問(wèn)web頁(yè)面,并返回已呈現(xiàn)的內(nèi)容,PhantomJS是一種命令行工具,可以用它來(lái)測(cè)試和爬取Web頁(yè)面,需要的朋友可以參考下
    2023-09-09
  • PyTorch中的nn.ConvTranspose2d模塊詳解

    PyTorch中的nn.ConvTranspose2d模塊詳解

    nn.ConvTranspose2d是PyTorch中用于實(shí)現(xiàn)二維轉(zhuǎn)置卷積的模塊,廣泛應(yīng)用于生成對(duì)抗網(wǎng)絡(luò)(GANs)和卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的解碼器中。該模塊通過(guò)參數(shù)如輸入輸出通道數(shù)、卷積核大小、步長(zhǎng)、填充等,能控制輸出尺寸和避免棋盤效應(yīng)
    2024-09-09
  • 使用Python將數(shù)組的元素導(dǎo)出到變量中(unpacking)

    使用Python將數(shù)組的元素導(dǎo)出到變量中(unpacking)

    最近工作中遇到一個(gè)問(wèn)題,需要利用Python將數(shù)組(list)或元組(tuple)中的元素導(dǎo)出到N個(gè)變量中,現(xiàn)在將我實(shí)現(xiàn)的方法分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-10-10
  • 解決python中文亂碼問(wèn)題方法總結(jié)

    解決python中文亂碼問(wèn)題方法總結(jié)

    這篇文章主要介紹了解決python中文亂碼問(wèn)題方法總結(jié),需要的朋友可以參考下
    2021-05-05
  • 詳解Python發(fā)送email的三種方式

    詳解Python發(fā)送email的三種方式

    這篇文章主要介紹了詳解Python發(fā)送email的三種方式,Python發(fā)送email的三種方式,分別為使用登錄郵件服務(wù)器、使用smtp服務(wù)、調(diào)用sendmail命令來(lái)發(fā)送三種方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • 超全面python常見(jiàn)報(bào)錯(cuò)以及解決方案梳理必收藏

    超全面python常見(jiàn)報(bào)錯(cuò)以及解決方案梳理必收藏

    使用python難免會(huì)出現(xiàn)各種各樣的報(bào)錯(cuò),以下是Python常見(jiàn)的報(bào)錯(cuò)以及解決方法(持續(xù)更新),快進(jìn)入收藏吃灰吧
    2022-03-03
  • python包pdfkit(wkhtmltopdf)?將HTML轉(zhuǎn)換為PDF的操作方法

    python包pdfkit(wkhtmltopdf)?將HTML轉(zhuǎn)換為PDF的操作方法

    pdfkit,把HTML+CSS格式的文件轉(zhuǎn)換成PDF格式文檔的一種工具。它就是html轉(zhuǎn)成pdf工具包wkhtmltopdf的Python封裝。所以,必須手動(dòng)安裝wkhtmltopdf,這篇文章主要介紹了python包pdfkit(wkhtmltopdf)將HTML轉(zhuǎn)換為PDF,需要的朋友可以參考下
    2022-04-04
  • Matplotlib繪制雷達(dá)圖和三維圖的示例代碼

    Matplotlib繪制雷達(dá)圖和三維圖的示例代碼

    這篇文章主要介紹了Matplotlib繪制雷達(dá)圖和三維圖的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評(píng)論

屏东市| 彭州市| 四会市| 潞西市| 大新县| 三台县| 开鲁县| 沅江市| 伊宁县| 万荣县| 凤翔县| 宝兴县| 获嘉县| 新邵县| 和静县| 抚松县| 临汾市| 图片| 桐庐县| 鸡泽县| 英德市| 阜平县| 依安县| 保靖县| 忻州市| 砚山县| 莱西市| 尚志市| 镇坪县| 宁津县| 突泉县| 富锦市| 吴桥县| 南昌市| 北京市| 恩平市| 张北县| 安西县| 竹溪县| 永吉县| 海口市|