2016-12-14 22 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

回答