scala - 在线代码编辑器 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"
)
您将无法直接使用 读取 url 内容sc.textFile
,这仅用于读取本地/HDFS 文本文件。您必须先获取内容,将其整理成形并从中受益DataFrame
。
此处显示的答案描述了如何使用Scala 标准库中的Source访问 Web url。
应 OP 的要求,这里有一个关于 scastie的实现。
推荐阅读
- ios - 如何获取对象对应于某个 UISegmentedControl 的上下文
- powershell-4.0 - 如何解决错误“字符串未被识别为有效日期时间”?
- laravel - 我想在保存我的评论刀片时存储餐厅 ID
- angularjs - 在 ng-init 的范围和引用中公开 ng-form
- ios - 世博会构建失败,因为配置文件与分发证书无关
- r - 使用 R 在同一图中的一个经验 CDF 上叠加多个理论 CDF
- python - 具有不同类型的 Python 列表成员资格
- excel - 有没有办法在 Excel 中生成 TeamViewer 密码?
- javascript - Lazysizes bgset 在调整大小时不改变图像
- typescript - 使用异步等待的顺序函数调用问题