2016-12-14 345 views
0

我使用的火花使用下面的代碼如何轉義字符在FTP URL

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) 

獲取從FTP服務器上的文件,但我面臨的轉義字符,例如「^」,的問題「!」 ,「@」或「#」等等等等,我嘗試使用十六進制ASCII值的特殊字符,並試圖通過圍繞逃逸引號例如

val dataSource = "ftp://\'<username>\':\'<password>\'......... 

的用戶名/密碼,逃避他們,但這次沒工作。任何人都可以請解釋我如何可以逃脫我的FTP網址中的這些字符?

P.S.,當密碼不包含任何特殊字符時,此代碼可以正常工作。

+0

是否細到只需下載該文件並將其保存在本地磁盤上,然後使用星火解析它? – zsxwing

+0

好吧,這將是我最後一件事,因爲它在下載文件時有其自身的複雜性。 – UmerF92

回答