我正在使用Zeppelin 0.5.5.我在这里找到了python的代码/示例,因为我无法使用%pyspark http://www.makedatauseful.com/python-spark-sql-zeppelin-tutorial/.我感觉他的%pyspark示例有效,因为如果您使用原始的%spark zeppelin教程,则已经创建了"bank"表.
这段代码在笔记本中.
%pyspark
from os import getcwd
# sqlContext = SQLContext(sc) # Removed with latest version I tested
zeppelinHome = getcwd()
bankText = sc.textFile(zeppelinHome+"/data/bank-full.csv")
bankSchema = StructType([StructField("age", IntegerType(), False),StructField("job", StringType(), False),StructField("marital", StringType(), False),StructField("education", StringType(), False),StructField("balance", IntegerType(), False)])
bank = bankText.map(lambda s: s.split(";")).filter(lambda s: s[0] != "\"age\"").map(lambda s:(int(s[0]), str(s[1]).replace("\"", ""), str(s[2]).replace("\"", ""), str(s[3]).replace("\"", ""), int(s[5]) ))
bankdf = sqlContext.createDataFrame(bank,bankSchema)
bankdf.registerAsTable("bank")
Run Code Online (Sandbox Code Playgroud)
此代码位于同一笔记本中,但工作台不同.
%sql
SELECT count(1) FROM bank
org.apache.spark.sql.AnalysisException: no such table bank; line 1 pos 21
...
Run Code Online (Sandbox Code Playgroud) 在Scala和Python中它是:
z.put("varname", variable)
Run Code Online (Sandbox Code Playgroud)
但在javascript中我得到(在控制台中)
Uncaught ReferenceError: z is not defined
Run Code Online (Sandbox Code Playgroud)
我真正想做的是z.angular("varname")在Zeppelin中使用Scala代码访问javascript变量,但我没有运气:(
在一个单元格中完全需要类似的东西
%angular
<script>
var myVar = "hello world";
// some magic code here!
</script>
Run Code Online (Sandbox Code Playgroud)
然后在另一个细胞中
println(z.angular("myVar"))
Run Code Online (Sandbox Code Playgroud)
更新:
这就是我到目前为止所做的,我在黑暗中完全被刺伤,因为我更像是一个后端/数据科学类型的人.因此,为我的前端绝望道歉.
单元格1:
z.angularBind("myVar", "myVar")
z.angularBind("msg", "msg")
Run Code Online (Sandbox Code Playgroud)
注意我不知道在第二个参数中放什么.
单元格2:
%angular
<div ng-app>
<div id="outer" ng-controller="MsgCtrl">
You are {{msg}}
</div>
<div onclick="change()">click me</div>
</div>
<script>
var myVar = "hello world";
function MsgCtrl($scope)
{
$scope.msg = "foo";
// also experimented with $scope.msg = myVar;
}
function change() {
var scope = angular.element($("#outer")).scope();
scope.$apply(function(){ …Run Code Online (Sandbox Code Playgroud) 我试图在Windows Server 2012中安装Spark 2.0.1来测试Zeppelin 0.6.2.
我启动了Spark master并测试了Spark Shell.然后我在conf\zeppeling-env.cmd文件中配置了以下内容:
set SPARK_HOME=C:\spark-2.0.1-bin-hadoop2.7
set MASTER=spark://100.79.240.26:7077
我没有设置HADOOP_CONF_DIR和SPARK_SUBMIT_OPTIONS(根据文档可选)
我检查了Interpreter配置页面中的值,并且spark master是Ok.
当我运行Zeppelin教程 - >"将数据加载到表中"时注意我收到连接拒绝错误.以下是错误日志中消息的一部分:
INFO [2016-11-17 21:58:12,518]({pool-1-thread-11} Paragraph.java [jobRun]:252) - 使用null org.apache.zeppelin.interpreter.LazyOpenInterpreter @运行段落20150210-015259_1403135953 8bbfd7 INFO [2016-11-17 21:58:12,518]({pool-1-thread-11} RemoteInterpreterProcess.java [reference]:148) - 运行解释器进程[C:\ zeppelin-0.6.2-bin-all\bin\interpreter.cmd,-d,C:\ zeppelin-0.6.2-bin-all\interpreter\spark,-p,50163,-l,C:\ zeppelin-0.6.2-bin-all/local- repo/2C3FBS414] INFO [2016-11-17 21:58:12,614]({Exec Default Executor} RemoteInterpreterProcess.java [onProcessFailed]:288) - 解释器进程失败{} org.apache.commons.exec.ExecuteException:进程已退出在org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)org.apache.commons.exec.DefaultExecutor.access $ 200(DefaultExecutor.java:48)中出现错误:255(退出值:255) at org.apache.commons.exec.DefaultExecutor $ 1.run(DefaultExecutor.java:200)at java.lang.Thread.run(Thread.java:745)ERROR [2016 -11-17 21:58:43,846]({Thread-49} RemoteScheduler.java [getStatus]:255) - 无法获取状态信息org.apache.zeppelin.interpreter.InterpreterException:org.apache.thrift.transport. TTransportException:java.net.ConnectException:连接被拒绝:连接org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:53)org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory. java:37)org.apache.com上的org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:60)org.apache.com上的org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)位于org.apache.com上的Org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)中的.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435).remote.RemoteInterpreterProcess.getClient. (RemoteInterpreterProcess.java:189)org.apache.zeppelin.scheduler.RemoteScheduler $ JobStatusPoller.getStatus(RemoteScheduler).java:253)at org.apache.zeppelin.scheduler.RemoteScheduler $ JobStatusPoller.run(RemoteScheduler.java:211)引起:org.apache.thrift.transport.TTransportException:java.net.ConnectException:连接被拒绝:连接at org.apache.thrift.transport.TSocket.open(TSocket.java:187)org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:51)... 8更多引起:java.net .ConnectException:连接被拒绝:在java.net.DualStackPlainSocketImpl.smplConnect(DualStackPlainSocketImpl.java:79)的java.net.AualStackPlainSocketImpl.connect(JavaP.AbstractStackSocketImpl.Lode:7)处的java.net.DualStackPlainSocketImpl.connect0(本地方法)处连接java.net.SocksSocketImpl的java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)上的java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) java.net.Socket.connect中的.connect(SocksSocketImpl.java:392)(Socket.java:579)at org.apache.thrift.transport.TSocket.open(TSocket.java:182)... 9 more ERROR [2016-11-17 …
我正在使用Zeppelin笔记本/ Apache Spark,我经常收到以下错误:
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)中的org.apache.thrift.transport.TTransportException位于org.apache.thrift.transport.TTransport.readAll(TTransport.java:86).位于org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318)的apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429)org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol. java:219)org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)atg.apache.zeppelin.interpreter.thrift.RemoteInterpreterService $ Client.recv_interpret(RemoteInterpreterService.java:249)org.apache.zeppelin .interpreter.thrift.RemoteInterpreterService $ Client.interpret(RemoteInterpreterService.java:233)atg.apache.zeppelin.interpreter.remote.RemoteInterpreter.interpret(RemoteInterpreter.java:269)org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret (LazyOpenInterpreter.java:94)org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:279)org.apache.zeppelin.scheduler.Job.run(Job.java:176)at org.apache.zeppelin.scheduler.RemoteScheduler $ JobRunner.run(RemoteScheduler.java:328)at java .util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor. java:180)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker .run(ThreadPoolExecutor.java:617)在java.lang.Thread.run(Thread.java:745)
如果我尝试再次运行相同的代码(只是忽略错误),我得到这个(只是顶线):
java.net.SocketException:管道损坏(写入失败)
然后,如果我尝试第三次(或任何时间后)运行它,我会收到此错误:
java.net.ConnectException:连接被拒绝(连接被拒绝)
如果我在Zeppelin Notebooks中重新启动解释器,那么它(最初)可以工作但最终我最终再次收到此错误.
在我的过程中的各个步骤(数据清理,矢量化等)中发生了这个错误,但是它最常出现的时间(到目前为止)是我正在拟合模型的时候.为了让您更好地了解我实际在做什么以及通常何时发生,我将引导您完成我的过程:
我正在使用Apache Spark ML并完成了一些标准的矢量化,加权等(CountVectorizer,IDF),然后在该数据上构建模型.
我使用VectorAssember创建我的特征向量,将其转换为密集向量,并将其转换为数据帧:
assembler = VectorAssembler(inputCols = ["fileSize", "hour", "day", "month", "punct_title", "cap_title", "punct_excerpt", "title_tfidf", "ct_tfidf", "excerpt_tfidf", "regex_tfidf"], outputCol="features")
vector_train = assembler.transform(train_raw).select("Target", "features")
vector_test = assembler.transform(test_raw).select("Target", "features")
train_final = vector_train.rdd.map(lambda x: Row(label=x[0],features=DenseVector(x[1].toArray())))
test_final = vector_test.rdd.map(lambda x: Row(label=x[0],features=DenseVector(x[1].toArray())))
train_final_df …Run Code Online (Sandbox Code Playgroud) python apache-spark pyspark apache-zeppelin apache-spark-mllib
我有一个python包,其中包含许多内置在.egg文件中的模块,我想在zeppelin笔记本中使用它.根据zeppelin文档,要将此包传递给zeppelin spark解释器,您可以通过conf/zeppelin-env.sh中SPARK_SUBMIT_OPTIONS中的--files选项将其导出.关于此,我有以下问题:
在pyspark shell中,带有--py-files的.egg文件正在工作(即我能够在pyspark shell中导入包内的模块),而带有--files选项的相同.egg文件不起作用(ImportError) :没有名为XX.xx的模块)
在zeppelin中的SPARK_SUBMIT_OPTIONS中通过--py-files选项添加.egg文件会导致错误:
Error: --py-files given but primary resource is not a Python script.
根据我的理解,SPARK_SUBMIT_OPTIONS中给出的任何内容都会传递给spark-submit命令,但为什么--py-files会抛出错误?
当我通过SPARK_SUBMIT_OPTIONS中的--files选项添加.egg时,zeppelin笔记本不会抛出错误,但我无法在zeppelin笔记本中导入模块.
传递.egg文件zeppelin spark intrepreter的正确方法是什么?
Spark版本为1.6.2,zeppelin版本为0.6.0
zepplein-env.sh文件包含以下内容:
export SPARK_HOME=/home/me/spark-1.6.1-bin-hadoop2.6
export SPARK_SUBMIT_OPTIONS="--jars /home/me/spark-csv-1.5.0-s_2.10.jar,/home/me/commons-csv-1.4.jar --files /home/me/models/Churn-zeppelin/package/build/dist/fly_libs-1.1-py2.7.egg"
Run Code Online (Sandbox Code Playgroud) 如何设置Zeppelin Note的权限仅执行以下操作:
我不希望用户更改代码或访问Interpreter菜单或更改配置.
谢谢
-Anna
在zeppelin中运行任何类型的命令时,我得到一个"java.lang.NullPointerException"错误 - 甚至是简单的东西sc.appName.这是全文:
java.lang.NullPointerException
at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)
at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33)
at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext_2(SparkInterpreter.java:391)
at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext(SparkInterpreter.java:380)
at org.apache.zeppelin.spark.SparkInterpreter.getSparkContext(SparkInterpreter.java:146)
at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:828)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:483)
at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)
该错误似乎与Spark有关,但我在zeppelin-env.sh中正确设置了位置:
export SPARK_HOME=/usr/local/spark
Run Code Online (Sandbox Code Playgroud)
我修改过的唯一其他字段如下:
export HADOOP_CONF_DIR=/home/cloudera/hadoop/etc/hadoop
export PYSPARK_PYTHON=/usr/bin/python
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
Run Code Online (Sandbox Code Playgroud)
我的hadoop安装没有"conf"文件夹,但是yarn-site文件位于指定的位置.我正在使用匿名登录,不确定这是否相关.我可以从命令行成功运行Spark shell.我确实试图四处寻找,因为这是一个常见的错误,但似乎没有什么能适应这种情况.如果需要,我还可以提供zeppelin-env.sh文件.在此先感谢您的帮助!
我正在EMR上创建集群并配置Zeppelin以从S3读取笔记本.为此,我使用的json对象看起来像这样:
[
{
"Classification": "zeppelin-env",
"Properties": {
},
"Configurations": [
{
"Classification": "export",
"Properties": {
"ZEPPELIN_NOTEBOOK_STORAGE":"org.apache.zeppelin.notebook.repo.S3NotebookRepo",
"ZEPPELIN_NOTEBOOK_S3_BUCKET":"hs-zeppelin-notebooks",
"ZEPPELIN_NOTEBOOK_USER":"user"
},
"Configurations": [
]
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我在EMR的Stoftware配置页面中粘贴了这个对象:
我的问题是,我是如何/在哪里直接配置Spark解释器而无需在每次启动集群时从Zeppelin手动配置它?
我已经将avro文件读入spark RDD,需要将其转换为sql数据框。我怎么做。
这是我到目前为止所做的。
import org.apache.avro.generic.GenericRecord
import org.apache.avro.mapred.{AvroInputFormat, AvroWrapper}
import org.apache.hadoop.io.NullWritable
val path = "hdfs://dds-nameservice/user/ghagh/"
val avroRDD = sc.hadoopFile[AvroWrapper[GenericRecord], NullWritable, AvroInputFormat[GenericRecord]](path)
Run Code Online (Sandbox Code Playgroud)
当我做:
avro.take(1)
Run Code Online (Sandbox Code Playgroud)
我回来
res1: Array[(org.apache.avro.mapred.AvroWrapper[org.apache.avro.generic.GenericRecord], org.apache.hadoop.io.NullWritable)] = Array(({"column1": "value1", "column2": "value2", "column3": value3,...
Run Code Online (Sandbox Code Playgroud)
如何将其转换为SparkSQL数据框?
我正在使用Spark 1.6
谁能告诉我是否有解决这个问题的简单方法?
当使用EMR(与Spark,Zeppelin)配合使用时spark.driver.memory,Zeppelin Spark解释器设置的更改将无法进行。
我想知道使用EMR Web界面(不是AWS CLI)创建集群时设置Spark驱动程序内存的最佳和最快方法是什么?
Bootstrap动作可以解决吗?如果是,请提供一个示例,说明引导操作文件的外观如何?
apache-zeppelin ×10
apache-spark ×7
amazon-emr ×2
emr ×2
pyspark ×2
python ×2
scala ×2
angularjs ×1