【发布时间】:2016-12-14 18:57:55
【问题描述】:
我正在使用 spark 使用以下代码从 ftp 服务器获取文件
val dataSource = "ftp://<username>:<password>@<host>:<port>/<path>"
sc.addFile(dataSource)
var fileName = SparkFiles.get(dataSource.split("/").last)
val sqlContext = new SQLContext(sc)
val df = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true") // Use first line of all files as header
.option("inferSchema", "true") // Automatically infer data types
.option("delimiter", ",")
.load(fileName)
但我面临转义字符的问题,如“^”、“!”、“@”或“#”等。我尝试将 HEX ASCII 值用于特殊字符,并尝试通过包围来转义它们转义引号中的用户名/密码,例如
val dataSource = "ftp://\'<username>\':\'<password>\'.........
但这也不起作用。谁能向我解释一下如何在我的 ftp url 中转义这些字符?
P.S.,当密码不包含任何特殊字符时,此代码确实有效。
【问题讨论】:
-
下载文件保存在本地磁盘然后用Spark解析就可以了吗?
-
好吧,这将是我最不想做的事情,因为它在下载文件时有其自身的复杂性。
标签: scala apache-spark ftp spark-csv