Добавить новые строки в pyspark Dataframe - PullRequest
0 голосов
/ 07 октября 2018

Я очень новый pyspark, но знаком с пандами.У меня есть pyspark Dataframe

# instantiate Spark
spark = SparkSession.builder.getOrCreate()

# make some test data
columns = ['id', 'dogs', 'cats']
vals = [
     (1, 2, 0),
     (2, 0, 1)
]

# create DataFrame
df = spark.createDataFrame(vals, columns)

, который хотел добавить новую строку (4,5,7), чтобы он вывел:

df.show()
+---+----+----+
| id|dogs|cats|
+---+----+----+
|  1|   2|   0|
|  2|   0|   1|
|  4|   5|   7|
+---+----+----+

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Поскольку thebluephantom уже сказал, что союз - это путь.Я просто отвечаю на ваш вопрос, чтобы привести пример pyspark:

columns = ['id', 'dogs', 'cats']
vals = [(1, 2, 0), (2, 0, 1)]

df = spark.createDataFrame(vals, columns)

newRow = spark.createDataFrame([(4,5,7)], columns)
appended = df.union(newRow)
appended.show()

Пожалуйста, ознакомьтесь также с FAQ по кирпичам: https://docs.databricks.com/spark/latest/faq/append-a-row-to-rdd-or-dataframe.html

0 голосов
/ 07 октября 2018

Из того, что я сделал, используя union , показывая частичное кодирование блока - вам, конечно, нужно адаптироваться к вашей собственной ситуации:

val dummySchema = StructType(
StructField("phrase", StringType, true) :: Nil)
var dfPostsNGrams2 = spark.createDataFrame(sc.emptyRDD[Row], dummySchema)
for (i <- i_grams_Cols) {
    val nameCol = col({i})
    dfPostsNGrams2 = dfPostsNGrams2.union(dfPostsNGrams.select(explode({nameCol}).as("phrase")).toDF )
 }

объединение DF с самим собой - этопуть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...