【问题标题】:How to escape characters in a ftp url如何在 ftp url 中转义字符
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 1970-01-01
    • 2013-12-21
    • 2011-08-28
    • 2011-04-06
    • 2011-04-17
    • 2016-03-10
    • 2010-10-29
    相关资源
    最近更新 更多