问题标签 [apache-toree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
409 浏览

scala - 如何从 Scala 中的 HDFS 本​​地读取文本文件(不使用 Spark)?

我知道我可以像这样读取本地文件Scala

此代码字很好,并打印出文本文件中的行。我JupyterHubApache Toree.

我知道我可以在这个服务器上读取HDFS,因为当我在另一个单元格中运行下一个代码时:

它也可以正常工作,我可以看到以下输出:

现在我想HDFS通过运行这个来读取这个相同的文件:

但我得到这个输出而不是打印出文件的行:

那么我该如何读取这个文本文件HDFS呢?

0 投票
0 回答
455 浏览

scala - 仅当需要函数类型时,未应用的方法才会转换为函数

在 Scastie 网站上,以下代码在带有 Scala 2.11.12 的 Spark Shell 中直接工作,没有问题。但是在运行 Apache Toree 的 Jupyter Notebook 中,出现了一个奇怪的错误。

在内核刚启动后首次执行此代码时没有错误。但是当执行相同的单元格时,立即显示以下错误:

答案是:1 a = 1 :28:错误:缺少方法 findFirst 的参数列表 未应用的方法仅在需要函数类型时才转换为函数。您可以通过编写findFirst _findFirst(_,_)代替findFirst. findFirst ^ lastException: Throwable = null findFirst: [A](as: List[A], p: A => Boolean)Int 1

重新启动内核时错误消失了。有人可以告诉我他们是否知道此问题的解决方案或原因吗?

0 投票
0 回答
74 浏览

java - 使用 Spark 读取 Kudu 表时出现问题(带有 Apache Toree 的 Jupyer Notebook - Scala Kernel)

我正在尝试在使用 Apache Toree - Scala 内核运行的 Jupyter Notebook 中使用 Apache Spark 读取 Kudu 表。

Spark 版本:2.2.0 Scala 版本:2.11 Apache Toree 版本:0.3

这是我用来读取 Kudu 表的代码

使用kuduContext.tableExists(table)返回true。使用kuduTableDF.columns会给出一个具有正确列名的字符串数组。

当我尝试应用计数、显示等操作时会出现问题......当前异常被抛出:

名称:org.apache.spark.SparkException 消息:作业因阶段失败而中止:获取任务结果时出现异常:java.io.IOException:java.lang.ClassNotFoundException:org.apache.kudu.spark.kudu.KuduContext$TimestampAccumulator StackTrace : 在 org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1567) 在 org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply( DAGScheduler.scala:1555) at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1554) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)在 org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1554) 在 org.apache.spark.scheduler 的 scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)。DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:803) at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:803) at scala.Option.foreach(Option. scala:257) at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:803) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1782) at org.apache.spark.scheduler .DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1737) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1726) at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala :48)257) 在 org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1782) 在 org.apache.spark.scheduler.DAGSchedulerEventProcessLoop 的 org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:803) .onReceive(DAGScheduler.scala:1737) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1726) at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48 )257) 在 org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1782) 在 org.apache.spark.scheduler.DAGSchedulerEventProcessLoop 的 org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:803) .onReceive(DAGScheduler.scala:1737) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1726) at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48 )运行(EventLoop.scala:48)运行(EventLoop.scala:48)
在 org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:619) 在 org.apache.spark.SparkContext.runJob(SparkContext.scala:2031) 在 org.apache.spark.SparkContext.runJob(SparkContext.scala :2052) 在 org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:336) 在 org.apache.spark.sql 的 org.apache.spark.SparkContext.runJob(SparkContext.scala:2071)。 execution.CollectLimitExec.executeCollect(limit.scala:38) at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collectFromPlan(Dataset.scala:2865) at org.apache.spark.sql .Dataset$$anonfun$head$1.apply(Dataset.scala:2154) at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2154) at org.apache.spark.sql .Dataset$$anonfun$55.apply(Dataset.scala:2846) 在 org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:65) 在 org.apache。spark.sql.Dataset.withAction(Dataset.scala:2845) at org.apache.spark.sql.Dataset.head(Dataset.scala:2154) at org.apache.spark.sql.Dataset.take(Dataset.scala:第2367章.show(Dataset.scala:600) 在 org.apache.spark.sql.Dataset.show(Dataset.scala:609)

我已经在 Apache Toree 笔记本中使用了AddDeps魔法,如下所示:

执行以下导入没有问题:

0 投票
0 回答
48 浏览

scala - Scala中的转置

我是 Scala 的新手。我目前正在研究一个 jupyter notebook Apache Toree - Scala。我有以下内容:

dt_analysis 指标名称 平均值
2021-08-13 FID 337.07522229312184
2021-08-13 CLS 0.4778479558664849
2021-08-13 液晶面板 27853.39253624655
2021-08-14 液晶面板 1503.4752384264077
2021-08-14 CLS 0.4933521946102963
2021-08-14 FID 119.07927683323628
2021-08-15 液晶面板 1654.1969758061045

这是一个“'void'类”。

我希望将其转置并将 metric_name 作为列。注意:每个 dt_analysis 每个指标都有一个值。