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



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

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

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

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

这只适用于小文件。Gist上文件的限制在他们的开发者指南中有解释。

如果您需要文件的全部内容,您可以向raw_URL指定的URL发出GET请求请注意,对于大于10兆字节的文件,您需要通过git_pull_URL提供的URL克隆gist。

所以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

这里显示的答案描述了如何使用Scala标准库中的Source访问web url。

应OP的要求,这里有一个关于scastie的实现。

最新更新