在线代码编辑器Scastie如何读取输入文件?

时间:2020-09-01 05:33:26

标签: scala

我需要将非常大的输入文件传递给Scastie。我的意思是在线代码编辑器Scastie如何读取本地计算机上可用的文件,例如

val lines = sc.textfile("....mdb/u.data")

1 个答案:

答案 0 :(得分:4)

有人在团队的Gitter频道上问了这个问题。

Scastie团队成员首先询问文件的大小,然后建议将其放在Github上的Gist中,并使用原始URL读取文件。

这仅适用于小文件。有关Gist文件的限制,请参见其Developer Guide

如果需要文件的全部内容,则可以对raw_url指定的URL进行GET请求。 请注意,对于大于10 MB的文件,您需要通过git_pull_url提供的URL克隆要点。

因此10 MB是您的限制。另外请注意,如果不向在线环境标识库,就不能使用SparkContext(在问题中以sc表示)。

为此,您必须添加SBT依赖项。

  • 导航到界面左侧的Build Settings
  • Scala Version设置为与我们选择的Spark兼容的版本,在本例中为2.11.12。
  • Extra Sbt Configuration下放置以下依赖项:
    libraryDependencies ++= Seq(
       "org.apache.spark" %% "spark-core" % "2.4.3",
       "org.apache.spark" %% "spark-sql" % "2.4.3"
    )

您将无法使用sc.textFile直接读取url内容,仅用于读取本地/ HDFS文本文件。您必须首先获取内容,将其缠绕成形状,然后从中获取DataFrame

here显示的答案描述了如何使用Scala标准库中的Source访问Web URL。

应OP的要求,这是scastie上的implementation

相关问题