Sử dụng comprehensions danh sách trong python, bạn có thể thu thập toàn bộ cột của giá trị vào một danh sách chỉ sử dụng hai dòng:
df = sqlContext.sql("show tables in default")
tableList = [x["tableName"] for x in df.rdd.collect()]
Trong ví dụ trên, chúng tôi trả lại một danh sách các bảng trong cơ sở dữ liệu ' mặc định ', nhưng điều tương tự có thể được điều chỉnh bằng cách thay thế truy vấn được sử dụng trong sql().
Hoặc hơn viết tắt:
tableList = [x["tableName"] for x in sqlContext.sql("show tables in default").rdd.collect()]
Và ví dụ bạn của ba cột, chúng ta có thể tạo ra một danh sách các từ điển, và sau đó lặp qua chúng trong một vòng lặp for.
sql_text = "select name, age, city from user"
tupleList = [{name:x["name"], age:x["age"], city:x["city"]}
for x in sqlContext.sql(sql_text).rdd.collect()]
for row in tupleList:
print("{} is a {} year old from {}".format(
row["name"],
row["age"],
row["city"]))
Tôi tin rằng tôi đã cung cấp câu trả lời đúng. Bạn có thể chọn hoặc cung cấp phản hồi để cải thiện không? – aaronsteers