【问题标题】:Converting pyspark to scala: Reading multiple directories将 pyspark 转换为 scala:读取多个目录
【发布时间】:2017-11-24 18:34:23
【问题描述】:

我有一个镶木地板格式的文件列表,我在 PySpark 中加载并合并到一个数据帧中。

paths = ['file1', 'file2', 'file3']
df_list = map(lambda x:(spark.read.parquet(x)), paths)
df = reduce(lambda df1, df2: df1.unionAll(df2), df_list)

我想用 Scala 做同样的操作。但是,当我在 Scala 路径列表

上使用地图操作时
val df_list = map(x = > (spark.read.parquet(x)), paths)

我收到以下错误:

:139: 错误:重载方法值镶木地板 替代方案:(路径:String*)org.apache.spark.sql.DataFrame
(路径:字符串)org.apache.spark.sql.DataFrame 不能应用于 (列表[字符串]) val df_list = map(x = > (spark.read.parquet(x)), 路径)

任何解决问题的建议都将不胜感激。

【问题讨论】:

    标签: python scala apache-spark apache-spark-sql parquet


    【解决方案1】:

    这里的首选方法是使用跳过union 并使用可变参数直接加载数据:

    spark.read.parquet(paths: _*)
    

    【讨论】:

      【解决方案2】:

      试试这个:

      val df_list = paths.map(x => spark.read.parquet(x))
      val df = df_list.reduce(_.union(_))
      

      问题是在 Scala 中 mapreduce 是收集方法。

      【讨论】:

        猜你喜欢
        • 2018-04-03
        • 1970-01-01
        • 2020-09-19
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-27
        • 2019-10-29
        相关资源
        最近更新 更多