如何在ftp url中转义字符

时间:2016-12-14 18:57:56

标签: scala apache-spark ftp spark-csv

我使用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)

但是我面临着逃避字符的问题,例如&#39; ^&#39;,&#39;!&#39;,&#39; @&#39;或者&#39;#&#39;我尝试使用HEX ASCII值作为特殊字符,并尝试通过在转义引号中包含用户名/密码来逃避它们,例如

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

但这也没有奏效。任何人都可以向我解释如何在我的ftp url中逃避这些角色?

P.S。,当密码不包含任何特殊字符时,此代码可以正常工作。

1 个答案:

答案 0 :(得分:1)

请记住,这是一个网址。这意味着它可以包含%escapes。例如,匿名ftp站点需要一个电子邮件地址作为密码,因此它看起来像

  

ftp://anonymous:user%40foo.com@source.com/path/to/file