Как сказал Дин, textFileStream использует по умолчанию только использование новых файлов.
def textFileStream(directory: String): DStream[String] = {
fileStream[LongWritable, Text, TextInputFormat](directory).map(_._2.toString)
}
Итак, все, что он делает, вызывает этот вариант fileStream
def fileStream[
K: ClassTag,
V: ClassTag,
F <: NewInputFormat[K, V]: ClassTag
] (directory: String): InputDStream[(K, V)] = {
new FileInputDStream[K, V, F](this, directory)
}
И, посмотрев на класс FileInputDStream
, мы увидим, что он действительно может искать существующие файлы, но по умолчанию только новый:
newFilesOnly: Boolean = true,
Итак, возвращаясь в код StreamingContext
, мы может видеть, что есть и перегрузка, которую мы можем использовать, напрямую вызывая метод fileStream
:
def fileStream[
K: ClassTag,
V: ClassTag,
F <: NewInputFormat[K, V]: ClassTag]
(directory: String, filter: Path => Boolean, newFilesOnly: Boolean):InputDStream[(K, V)] = {
new FileInputDStream[K, V, F](this, directory, filter, newFilesOnly)
}
ssc.fileStream[LongWritable, Text, TextInputFormat]
(directory, FileInputDStream.defaultFilter, false).map(_._2.toString)
В случае устройств и операционных систем (например, IoT), которые не предоставляют веб-браузер, вы можете использовать поток кода устройства, который позволяет пользователю использовать другое устройство (компьютер или мобильный телефон) для интерактивного входа. Вот более подробная информация об использовании потока кода устройства с msal .
Использование мобильного устройства, которое является общедоступным клиентом, имеет много способов получения токена (в том числе в режиме без вывода сообщений, предполагая, что токен уже находится в кэше), большинство из которых связаны с пользовательским интерфейсом. Общедоступные клиенты запускаются на устройствах или настольных компьютерах и им не доверяют надежно хранить секреты приложений. Вот больше информации о общедоступных клиентских приложениях для msal .NET, которые поддерживают Xamarin iOS.