我使用以下代码:
val fs = FileSystem.get(new Configuration())
val status = fs.listStatus(new Path("wasb:///example/"))
status.foreach(x=> println(x.getPath)
来自这个问题:How to enumerate files in HDFS directory
我的问题是我不明白如何为类创建别名,如果没有它,代码就会失败。我发现代码中提到的所有类和以下代码都有效:
val fs = org.apache.hadoop.fs.FileSystem.get(new org.apache.hadoop.conf.Configuration())
val status = fs.listStatus(new org.apache.hadoop.fs.Path("wasb:///example/"))
status
所以问题是:如何在scala中为类创建别名?如何将Path()指向org.apache.hadoop.fs.Path()?
我在Stackoverflow上尝试了这个问题:Class alias in scala,但没有找到与我案例的联系。
答案 0 :(得分:4)
不确定您的术语别名。我想你想import。 e.g。
import org.apache.hadoop.fs.Path
或更一般地
import org.apache.hadoop.fs._
请注意,可以通过导入别名,因此:
import org.apache.hadoop.fs.{Path => MyPath}
然后将Path
称为MyPath
。这在编写导入2个相同名称但不同包的类的代码时特别有用。 java.util.Date
和java.sql.Date
。使用别名可以解决这种混乱。