使用 pyspark 找到以下输出

问题描述 投票:0回答:1

我是 pyspark 新手,我需要帮助解决以下问题。

FILE_1

#d1:u1 | d2:u2 | d3:u3 #d4:u4 | d5:u5 #d6:u6 | d7:u7

#o/p #表1

第 1 列:第 2 列

d1:u1

d2:u2

d3:u3

d4:u4

d5:u5

#o / p

表2

第 1 列:第 2 列

u1:u1

u1:u2

u1:u3

u4:u4

u5:u5

u6:u6

u6:u7

给定 FILE_1 中的数据,将其转换为表 1 和表 2 的所需输出

dataframe apache-spark pyspark apache-spark-sql
1个回答
0
投票

这适用于第一种情况,类似地,您也可以构建第二个表。它可能无法很好地处理大文件,并且解决方案可能会错过一些极端情况。

   //content of input2.txt : #d1:u1|d2:u2|d3:u3#d4:u4|d5:u5#d6:u6|d7:u7

  spark.read.textFile("input2.txt")
    .flatMap(row => row.split("#"))
    .flatMap(row => row.split("\\|"))
    .map(row => (row.split(":")))
    .filter(row => row.size >1)
    .map(row => (row(0),row(1)))
    .toDF("col1","col2")
    .show(false)

  /*
    +----+----+
  |col1|col2|
  +----+----+
  |d1  |u1  |
  |d2  |u2  |
  |d3  |u3  |
  |d4  |u4  |
  |d5  |u5  |
  |d6  |u6  |
  |d7  |u7  |
  +----+----+
   */
© www.soinside.com 2019 - 2024. All rights reserved.