pyspark - 如何在pyspark中读取csv文件?
问题描述
我正在尝试使用 pyspark 读取 csv 文件,但它显示了一些错误。你能告诉读取csv文件的正确过程是什么吗?
蟒蛇代码:
from pyspark.sql import *
df = spark.read.csv("D:\Users\SPate233\Downloads\iMedical\query1.csv", inferSchema = True, header = True)
我也试过以下一个:
sqlContext = SQLContext
df = sqlContext.load(source="com.databricks.spark.csv", header="true", path = "D:\Users\SPate233\Downloads\iMedical\query1.csv")
错误:
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
df = spark.read.csv("D:\Users\SPate233\Downloads\iMedical\query1.csv", inferSchema = True, header = True)
NameError: name 'spark' is not defined
and
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
df = sqlContext.load(source="com.databricks.spark.csv", header="true", path = "D:\Users\SPate233\Downloads\iMedical\query1.csv")
AttributeError: type object 'SQLContext' has no attribute 'load'
解决方案
首先,您需要创建一个 SparkSession,如下所示
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("yarn").appName("MyApp").getOrCreate()
并且您的 csv 需要在 hdfs 上,然后您可以使用 spark.csv
df = spark.read.csv('/tmp/data.csv', header=True)
/tmp/data.csv 在 hdfs 上
推荐阅读
- javascript - 声音未在脚本内显示
- angular - Angular 9 Opening file saved in database with the fileName retrieved from database
- javascript - 推入 foreach 不添加到数组
- python - NGINX + Gunicorn + Flask - 502 Bad Gateway - 对套接字文件的权限被拒绝
- csv - SSIS 包 - 使用管道 (|) 作为分隔符加载 CSV 文件
- arrays - 如何从另一个数组中减去一个数组的每个值以找到数组 1 的值减去数组 2 的值 = 0 的位置?
- javascript - 汇总:如何在文件开头添加一行?
- typescript - 在元组类型中映射元组类型
- sql - 计算两个日期之间的天数的函数,接受开始日期和结束日期,然后返回它在该期间覆盖的天数
- swift - Swift --- 在 for in 循环中将 Char 转换为 Int