我需要将一个非常大的输入文件传递给斯卡斯蒂。我的意思是,作为在线代码编辑器的Scastie如何读取本地机器上可用的文件,例如
val lines = sc.textfile("....mdb/u.data")发布于 2020-09-01 06:04:52
有些人在团队的吉特频道上问了这个问题。
这位Scastie团队成员首先询问文件有多大,然后建议将它放在Github上的要旨中,并使用原始url读取它。
这只适用于小文件。Gist上文件的限制在其开发人员指南中得到了解释。
如果需要文件的全部内容,可以向raw_url指定的URL发出GET请求。需要注意的是,对于大于10 to的文件,需要通过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。
这里给出的答案描述了如何使用Standard中的来源访问web url。
根据OP的要求,这里有一个关于scastie的实现。
https://stackoverflow.com/questions/63681906
复制相似问题