Насколько я знаю, spark не может напрямую прочитать файл в формате URL.Таким образом, вместо чтения CSV-файла с помощью Python и записи его на диск, чтобы вы могли прочитать его позже, используя spark, вы можете использовать pandas перед преобразованием его в Spark Dataframe (который вы получите благодаря распределенным вычислениям на spark с использованием dataframe)
Я не очень знаком со Scala, поэтому я попытался решить ее с помощью pyspark
import pandas as pd
from pyspark.sql.types import StringType, LongType
frame = pd.read_csv("https://www.dropbox.com/s/2hdbltrl8bh6kbu/train.csv?raw=1", index_col=None, header=0, encoding='utf-8') # Prod
frame = frame.where(pd.notnull(frame), None) # Fill NaN with Null
schema = StructType([
StructField("id", StringType(), True),
StructField("teacher_id", StringType(), True),
StructField("teacher_prefix", StringType(), True),
StructField("school_state", StringType(), True),
StructField("project_submitted_datetime", StringType(), True),
StructField("project_grade_category", StringType(), True),
StructField("project_subject_categories", StringType(), True),
StructField("project_subject_subcategories", StringType(), True),
StructField("project_title", StringType(), True),
StructField("project_essay_1", StringType(), True),
StructField("project_essay_2", StringType(), True),
StructField("project_essay_3", StringType(), True),
StructField("project_essay_4", StringType(), True),
StructField("project_resource_summary", StringType(), True),
StructField("teacher_number_of_previously_posted_projects", LongType(), True),
StructField("project_is_approved", LongType(), True),
])
df = spark.createDataFrame(frame, schema)
Да, кстати, я считаю, что предоставление схемы для чтения CSV-файла является обязательным условием, поскольку оно не пойдетзадание spark, чтобы вы могли избежать потери ресурсов вычислений, и spark прочитает файл в правильном формате