问题标签 [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.
scala - 如何从 Scala 中的 HDFS 本地读取文本文件(不使用 Spark)?
我知道我可以像这样读取本地文件Scala
:
此代码字很好,并打印出文本文件中的行。我JupyterHub
用Apache Toree
.
我知道我可以在这个服务器上读取HDFS
,因为当我在另一个单元格中运行下一个代码时:
它也可以正常工作,我可以看到以下输出:
现在我想HDFS
通过运行这个来读取这个相同的文件:
但我得到这个输出而不是打印出文件的行:
那么我该如何读取这个文本文件HDFS
呢?
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
重新启动内核时错误消失了。有人可以告诉我他们是否知道此问题的解决方案或原因吗?
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魔法,如下所示:
执行以下导入没有问题:
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 每个指标都有一个值。