Один из возможных подходов - это нечто похожее на это
import org.apache.spark.sql.functions.udf
import org.apache.spark.mllib.linalg.Vector
// Get size of the vector
val n = testDF.first.getAs[org.apache.spark.mllib.linalg.Vector](0).size
// Simple helper to convert vector to array
val vecToSeq = udf((v: Vector) => v.toArray)
// Prepare a list of columns to create
val exprs = (0 until n).map(i => $"_tmp".getItem(i).alias(s"f$i"))
testDF.select(vecToSeq($"scaledFeatures").alias("_tmp")).select(exprs:_*)
. Если вы знаете список столбцов вверх, вы можете немного упростить это:
val cols: Seq[String] = ???
val exprs = cols.zipWithIndex.map{ case (c, i) => $"_tmp".getItem(i).alias(c) }
Для эквивалента Python см. Как разбить вектор на столбцы - используя PySpark .
Добро пожаловать в переполнение стека!
Когда вы передаете пунктирную строку в качестве первого аргумента include()
, он пытается импортировать этот путь. Если import apps.rest_slack.urls
не сработает, ваш include()
тоже не будет.
Судя по виду вашей структуры папок, вам, вероятно, придется использовать include('rest_slack.urls', ...)
.
Чтобы подтвердить, что это так, вы можете запустить import rest_slack.urls
в ./manage.py shell
или просто внести изменения в slack/urls.py
и посмотреть, работает ли он.
Из структуры вашего проекта выглядит, как будто ваши URL должны быть настроены следующим образом:
from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('slack.rest_slack.urls', namespace='rest_slack')),
]
или, если это не работает, попробуйте:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('myproject.slack.rest_slack.urls', namespace='rest_slack')),
]
Структура вашего проекта идет myproject.slack.rest_slack.urls.py
. Я не вижу там папки с приложениями.