【发布时间】:2018-06-04 21:22:16
【问题描述】:
我有如下列表:
rrr=[[(1,(3,1)),(2, (3,2)),(3, (3, 2)),(1,(4,1)),(2, (4,2))]]
df_input = []
接下来我定义了如下标题:
df_header=['sid', 'tid', 'srank']
使用 for 循环将数据附加到空列表中:
for i in rrr:
for j in i:
df_input.append((j[0], j[1][0], j[1][1]))
df_input
Output : [(1, 3, 1), (2, 3, 2), (3, 3, 2)]
如下创建数据框:
df = spark.createDataFrame(df_input, df_header)
df.show()
+---+---+------+
| sid|tid|srank|
+---+---+------+
| 1| 3| 1|
| 2| 3| 2|
| 3| 3| 2|
+---+---+------+
现在我的问题是如何在不使用任何外部 for 循环(如上)的情况下创建数据框。输入列表包含多于 1 条缺失记录。
【问题讨论】:
-
从 CSV、JDBC 源、Hive 表、HDFS 上的 parquet/avro 文件中读取。
-
如果问题是 for 循环,请查看列表推导...
-
列表理解可能不起作用。我有一个大数据集,所以我不想使用列表来解决这个问题
-
什么是“1条缺失记录”???
-
我的原始列表包含多个缺少对象,即间接地我告诉我添加的任何列表对象仅用于示例。
标签: apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql