python - 如何在pyspark中将类型从_csv.reader转换为rdd
问题描述
我首先需要使用 csv.reader 读取 rdd 文件以删除 rdd 文件中的双引号。然后我需要将 csv.reader 文件转换为 rdd 类型。我尝试使用sc.parallelize,但发现所有内容都消失了。
这是我的代码:
rdd_units = sc.textFile('file.csv')
rdd_units.take(4)
rdd_units.take(1) 的输出:
['"苹果","香蕉","橙子","樱桃","蓝莓","猕猴桃"']
rdd_units_=csv.reader(rdd_units.collect(),delimiter=',')
rdd_units_1=sc.parallelize(rdd_units_)
rdd_units_1.take(1)
rdd_units_1 的输出:[]
但我希望 rdd_units_1 的输出是:['apple','banana','orange','cherry','blueberry','kiwi'] 我不知道为什么 rdd_units_1 会变空。
解决方案
您可以使用数据框。
df = spark.read.option("header","true").option("inferSchema","true").csv("test.csv")
df.columns
['apple', 'banana', 'orange', 'cherry', 'blueberry', 'kiwi']
推荐阅读
- javascript - 如何使单击功能仅适用于您单击的对象的类
- javascript - 将结果从嵌套的 .then 返回到另一个函数
- android - 为什么 Android 应用内更新总是返回 UPDATE_NOT_AVAILABLE 并且版本代码为 0?
- sql - 如何在 CosmosDB SQL 中查询嵌套数组中的字段
- git - MINGW64 (Git Bash) 交互式 rebase 打开一个奇怪的 Vim 版本?
- python - 如果数据框合并上的值相等,则在一行中追加列
- arm - 在符合 ABI 的 ARM 中的标签后是否需要冒号
- javascript - 通过对数组进行排序来确定数组是否有重复元素
- php - 在 PHP 中合并 pdf 文件并在其中保留网络链接
- java - 从具有颜色强度的双阵列创建图像