如何在pyspark中从unix服务器读取csv文件

7qhs6swi  于 2022-11-01  发布在  Spark
关注(0)|答案(1)|浏览(857)

我需要从位于我的UNIX服务器中的csv文件创建Spark Dataframe 。
我试着像下面一样,

from pyspark.sql import SparkSession

spark = SparkSession.builder.master("local").appName("demo").getOrCreate()

df = spark.read.format('csv').option('header','True'). \
    load("ftp://USER:PASSWORD@UNIX_IP/home/user/sample.csv")

df.show(10)

但它抛出的错误为,
异常错误:java.net.URISyntaxException:索引32处的用户信息中存在非法字符**
有人能帮我解决这个问题吗?我们需要如何引用pyspark中的ftp位置?我们需要为此包含任何其他库吗?

krugob8w

krugob8w1#

您需要像这样使用addFile方法:

import org.apache.spark.SparkFiles

sc.addFile("ftp://user:pwd@host:port/home/user/sample.csv")
spark.read.csv(SparkFiles.get("sample.csv")).show()

要测试它,您可以使用如下公共ftp:

sc.addFile("ftp://anonymous:anonymous@ftp.gnu.org/README")
spark.read.csv(SparkFiles.get("README")).show(2)
+--------------------+--------------------+
|                 _c0|                 _c1|
+--------------------+--------------------+
| This is ftp.gnu.org| the FTP server o...|
|NOTICE (Updated O...|                null|
+--------------------+--------------------+

Python皮:

from pyspark import SparkFiles

sc.addFile('ftp://user:pwd@host:port/home/user/sample.csv')
spark.read.csv(SparkFiles.get('sample.csv')).show()

相关问题