簡體   English   中英

ApacheSpark從http源(例如csv等)讀取數據幀

[英]ApacheSpark read dataframe from http source (e.g. csv, …)

我很難從http源(例如csv,...)讀取ApacheSpark DataFrame。

HDFS和本地文件有效。

通過使用以下命令啟動spark-shell,還設法使AWS S3正常運行:

spark-shell --packages org.apache.hadoop:hadoop-core:1.2.1

然后像這樣更新hadoop conf:

val hadoopConf = sc.hadoopConfiguration
hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") 
hadoopConf.set("fs.s3.awsAccessKeyId", "****") 
hadoopConf.set("fs.s3.awsSecretAccessKey", "****")

恕我直言,必須存在一個fs.http.implfs.https.impl參數以及org.apache.hadoop.fs.FileSystem的相應實現。 但是我什么都沒找到。

很難相信沒有對HTTP(S)的支持,因為這在Pandas和R中毫無疑問。

有什么想法我想念的嗎? 順便說一句,這是失敗的代碼塊:

val df=spark.read.csv("http://raw.githubusercontent.com/romeokienzler/developerWorks/master/companies.csv")

出現以下錯誤:

17/06/26 13:21:51 WARN數據源:查找元數據目錄時出錯。 java.io.IOException:方案無文件系統:org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)上的org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2660)上的http在org.apache.hadoop.fs.FileSystem.access $ 200(FileSystem.java:94)在org.apache.hadoop.fs.FileSystem $ Cache.getInternal(FileSystem.java:2703)在org.apache.hadoop.fs。 FileSystem $ Cache.get(FileSystem.java:2685)
在org.apache.spark.sql.execution.datasources在org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)在org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373) .org.apache.spark.sql.execution.datasources.DataSource $$ anonfun $ 14.apply(DataSource.scala:370)的DataSource $$ anonfun $ 14.apply(DataSource.scala:372),位於scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:241)在scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:241)在scala.collection.immutable.List.foreach(List.scala:381) ),位於org.apache.spark.sql.execution.datasources.DataSource的scala.collection.immutable.List.flatMap(List.scala:344)的scala.collection.TraversableLike $ class.flatMap(TraversableLike.scala:241)處。 org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152)上的resolveRelation(DataSource.scala:370)
在org.apache.spark.sql.DataFrameReader.csv(DataFrameReader.scala:415)在org.apache.spark.sql.DataFrameReader.csv(DataFrameReader.scala:352)... 48被淘汰

這是重復的:

如何使用Spark-Scala從Web下載CSV文件?

只是將答案復制並粘貼到此處:

val content = scala.io.Source.fromURL("http://ichart.finance.yahoo.com/table.csv?s=FB").mkString

val list = content.split("\n").filter(_ != "")

val rdd = sc.parallelize(list)

val df = rdd.toDF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM