标签: apache-zeppelin

在Zeppelin中使用%pyspark解释器注册表时,我无法访问%sql中的表

我正在使用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)

apache-spark-sql apache-zeppelin

5
推荐指数
1
解决办法
4799
查看次数

如何在Zeppelin的javascript中将变量放入z ZeppelinContext?

在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)

scala angularjs apache-zeppelin

5
推荐指数
1
解决办法
9409
查看次数

Apache Zeppelin - Zeppelin教程未能创建解释器 - 连接被拒绝

我试图在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 …

apache-spark apache-zeppelin

5
推荐指数
0
解决办法
1334
查看次数

pyspark:ERROR中的org.apache.thrift.transport.TTransportException

我正在使用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

5
推荐指数
0
解决办法
923
查看次数

为什么zeppelin不支持--py-files?

我有一个python包,其中包含许多内置在.egg文件中的模块,我想在zeppelin笔记本中使用它.根据zeppelin文档,要将此包传递给zeppelin spark解释器,您可以通过conf/zeppelin-env.sh中SPARK_SUBMIT_OPTIONS中的--files选项将其导出.关于此,我有以下问题:

  1. 在pyspark shell中,带有--py-files的.egg文件正在工作(即我能够在pyspark shell中导入包内的模块),而带有--files选项的相同.egg文件不起作用(ImportError) :没有名为XX.xx的模块)

  2. 在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会抛出错误?

  3. 当我通过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)

python pyspark apache-zeppelin

5
推荐指数
1
解决办法
1161
查看次数

如何设置Zeppelin Note的权限才能执行但不能更改代码和配置?

如何设置Zeppelin Note的权限仅执行以下操作:

  1. 执行段落
  2. 从动态下拉列表中选择不同的值
  3. 将条形图中的显示类型更改为表格...
  4. 将结果数据下载为csv或tsv文件

我不希望用户更改代码或访问Interpreter菜单或更改配置.

谢谢

-Anna

apache-spark apache-zeppelin

5
推荐指数
0
解决办法
631
查看次数

apache zeppelin:java.lang.NullPointerException

在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文件.在此先感谢您的帮助!

nullpointerexception apache-spark apache-zeppelin

5
推荐指数
1
解决办法
5901
查看次数

启动集群时,在EMR上配置Zeppelin的Spark解释器

我正在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手动配置它?

amazon-emr emr apache-spark apache-zeppelin

5
推荐指数
1
解决办法
2494
查看次数

在Spark中读取Avro文件

我已经将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

谁能告诉我是否有解决这个问题的简单方法?

scala apache-spark apache-spark-sql apache-zeppelin

5
推荐指数
1
解决办法
2万
查看次数

如何在EMR上为Spark / Zeppelin设置spark.driver.memory

当使用EMR(与Spark,Zeppelin)配合使用时spark.driver.memory,Zeppelin Spark解释器设置的更改将无法进行。

我想知道使用EMR Web界面(不是AWS CLI)创建集群时设置Spark驱动程序内存的最佳和最快方法是什么?

Bootstrap动作可以解决吗?如果是,请提供一个示例,说明引导操作文件的外观如何?

amazon-emr emr apache-spark apache-zeppelin

5
推荐指数
1
解决办法
2374
查看次数